第一:函数作用域:
L:local 函数内部作用域
E:enclosing 函数内部与内嵌函数之间(闭包)
G:global 全局作用域
B:build_in 内置作用域
L > E > G > B 优先级比较
第二:闭包函数:
定义:如果内部函数引用了外部作用域(不是全局作用域)的变量,那么此时内部函数被称为闭包。
def func1():
a = 10
def func2():
b = 20
return a + b #引用了外部作用域的变量
return func2 res = func1() #调用
res() #
注意:闭包函数满足两点
1,函数内部定义 函数。
2,引用外部变量而非 全局变量。
第三:python装饰器:
装饰器本质是一个python 函数,它可以让其它函数在不需要代码做任何变动的情况下,增加额外的功能。
应用场景:1,插入日志,2,性能测试,3 事务处理,4,权限校验
import time def decorator(func):
def wapper(*args,**kwargs):
start_time = time.clock()
func()
end_time = time.clock()
print(end_time - start_time) #计算时间
return wapper @decorator #装饰器加入
def func():
time.sleep(0.8)
func()