python函数作用域,闭包,装饰器

第一:函数作用域:

L:local     函数内部作用域

E:enclosing       函数内部与内嵌函数之间(闭包)

G:global            全局作用域

B:build_in          内置作用域

 L > E > G > B          优先级比较


 第二:闭包函数:

定义:如果内部函数引用了外部作用域(不是全局作用域)的变量,那么此时内部函数被称为闭包。

复制代码
1 def func1():
2     a = 10
3     def func2():
4         b = 20
5         return a + b    #引用了外部作用域的变量
6     return func2
7 
8 res = func1()   #调用
9 res() #30
复制代码

 

注意:闭包函数满足两点

1,函数内部定义 函数。

2,引用外部变量而非 全局变量。


 

第三:python装饰器:

装饰器本质是一个python 函数,它可以让其它函数在不需要代码做任何变动的情况下,增加额外的功能。

应用场景:1,插入日志,2,性能测试,3 事务处理,4,权限校验

 

复制代码
 1 import time
 2 
 3 def decorator(func):
 4     def wapper(*args,**kwargs):
 5         start_time = time.clock()
 6         func()
 7         end_time = time.clock()
 8         print(end_time - start_time)  #计算时间
 9     return wapper
10 
11 @decorator #装饰器加入
12 def func():
13     time.sleep(0.8)
14 func()  
复制代码

 

posted @   lvye001  阅读(152)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示