Day16-Python基础学习之闭包和装饰器

ops/2024/9/20 15:36:42/

闭包

# 闭包
def outer(logo):def inner(msg):print(f"<{logo}>{msg}<{logo}>")return inner
​
fn1 = outer("Hello")   # 类型是函数  注意这里传入的参数对于内部函数来说是持续存在的
fn1("world")
​
# 修改外部函数的值
def out(num1):def In(num2):nonlocal num1num1 += num2print(num1)return In
​
fn = out(10)
fn(10)
fn(10)
​
# 案例
def account_create(init_account=0):def atm(num, deposit=True):nonlocal init_accountif deposit == True:init_account += numprint(init_account)else:init_account -= numprint(init_account)return atm
​
atm = account_create()
atm(100)
atm(50, False)
​
# 总结:闭包优点是无需定义全局变量即可实现通过函数持续访问、修改某个值,闭包使用的变量难以被错误的调用修改

装饰器

# 装饰器
def sleep():import randomimport timeprint("睡眠中...")time.sleep(random.randint(1, 5))
​
def outer(func):def inner():print("我睡觉了")func()print("我起床了")return inner
​
fn = outer(sleep)
fn()
​
# 装饰器快速写法
@outer
def sleep2():import randomimport timeprint("睡眠中...")time.sleep(random.randint(1, 5))
​
sleep2()

http://www.ppmy.cn/ops/9632.html

相关文章

BusyBox是何方神圣?

1.概念 BusyBox 是一个集成了300多个常用 Linux 命令&#xff08;例如&#xff1a;clear、mount、telnet、grep等&#xff09;和工具的单一可执行文件&#xff0c;常用于嵌入式 Linux 系统&#xff0c;如 Android。 它虽然很小&#xff0c;但提供了许多命令行的功能&#xff…

2024 应届校招经验分享(非互联网篇)

&#x1f4e2;&#x1f4e2;&#x1f4e2; 2024年应届毕业生&#xff0c;浙江大学计算机研究生。自23年秋招开始至今&#xff0c;博主先后拿到了互联网行业、机械制造行业、国企央企、高校体制等多家企业和单位的数十个Offer&#xff0c;了解多行业中的计算机求职方向&#xff…

展览展会媒体媒体邀约执行应该怎么做?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 展览展会邀请媒体跟其他活动邀请媒体流程大致相同&#xff0c;包括 制定媒体邀约计划&#xff0c;准备新闻稿&#xff0c;发送邀请函&#xff0c;确认媒体参会&#xff0c;现场媒体接待及…

《大话西游2》本人收集的十二个单机版游戏,有详细的视频架设教程,云盘下载

《大话西游2》是一款经典的大型多人在线角色扮演游戏&#xff0c;也是一款国风经典的游戏。 有能力的可以架设个外网&#xff0c;让大家一起玩。 《大话西游2》本人收集的十二个单机版游戏&#xff0c;有详细的视频架设教程&#xff0c;值得收藏 下载地址&#xff1a; 链接&…

数据分析_数据分析思维(1)

数据分析_数据分析思维(1) 这篇文章具体的给大家介绍数据分析中最为核心的技术之一: 数据分析思维的相关内容。 一、数据分析的三种核心思维 作为新手数据分析师或数据运营, 在面对数据异常的时候, 好多小伙伴都会出现: “好像是A引起的”, “好像也和B渠道有关”, “也可能…

LocalAi,Ollama+AnythingLLM搭建部署本地大模型AI知识库,汉化版本

AnythingLLM 是一个全栈应用程序&#xff0c;您可以使用商业现成的 LLM 或流行的开源 LLM 和 vectorDB 解决方案来构建私有 ChatGPT&#xff0c;无需任何妥协&#xff0c;您可以在本地运行&#xff0c;也可以远程托管并能够智能聊天以及您提供的任何文件。 AnythingLLM 将您的文…

物理机中没有VMNet1和VMNet8虚拟网卡

控制面板——网络连接——网络适配器 VMware Network Adapter VMnet1 VMware Network Adapter VMnet8 如果没有这两个虚拟网卡&#xff0c;虚拟机的网络会出现问题 # 解决办法-恢复虚拟网卡默认设置 1、下载并打开ccleaner&#xff0c;ccleaner官网&#xff1a;CCleaner M…

【InternLM 实战营第二期笔记04】XTuner微调LLM:1.8B、多模态、Agent

一、微调的原因 大模型微调&#xff08;Fine-tuning&#xff09;的原因主要有以下几点&#xff1a; 适应特定任务&#xff1a;预训练的大模型往往是在大量通用数据上训练的&#xff0c;虽然具有强大的表示学习能力&#xff0c;但可能并不直接适用于特定的下游任务。通过微调&…