标签:none info 分享图片 一个 closure 内存 机制 2.3 地址
day11
2.2.1. 返回的None则不是闭包,返回的是cell....则是闭包 3
2.3.1. 当执行一个函数时,如果解释器判断此函数内部闭包存在,Python有一个机制,闭包的所在的临时名称空间不会随着函数的执行完毕而消失。 3
3.1.1. 装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象。 4
3.1.2. 装饰器的应用场景:比如插入日志,性能测试,事务处理,缓存等等场景。 4
import time
def func1():
print(‘in func1‘)
def timer(func):
def inner():
start = time.time()
func()
print(time.time() - start)
return inner
func1 = timer(func1)
func1()
装饰器---简单版
import time
def timer(func):
def inner():
start = time.time()
func()
print(time.time() - start)
return inner
@timer #==> func1 = timer(func1)
def func1():
print(‘in func1‘)
func1()
装饰器---语法糖
def timer(func):
def inner(a):
start = time.time()
func(a)
print(time.time() - start)
return inner
@timer
def func1(a):
print(a)
func1(1)
装饰器——带参数的装饰器
import time
def timer(func):
def inner(*args,**kwargs):
start = time.time()
re = func(*args,**kwargs)
print(time.time() - start)
return re
return inner
@timer #==> func1 = timer(func1)
def func1(a,b):
print(‘in func1‘)
@timer #==> func2 = timer(func2)
def func2(a):
print(‘in func2 and get a:%s‘%(a))
return ‘fun2 over‘
func1(‘aaaaaa‘,‘bbbbbb‘)
print(func2(‘aaaaaa‘))
装饰器---hold住所有参数的装饰器
标签:none info 分享图片 一个 closure 内存 机制 2.3 地址
原文地址:https://www.cnblogs.com/changwentao/p/9026650.html