- 闭包
闭包就是能够读取其他函数内部变量的函数。比如在一个函数内部的子函数:
def p(neme,age):
def print_name():
print(neme)
- 装饰器
本质是一个函数
功能:为被修饰函数添加功能
要求:1.不修改被修饰函数的源代码。2.不修改被修饰函数的调用方式。
为什么要使用装饰器:使用装饰器为函数添加功能不违背开放封闭原则。
def f1():
time.sleep(2)
print('f1运行')
return 'f1的返回值'
print(f1())
f1运行
f1的返回值
def timer(func):
def x(*args,**kwargs):
start=time.time()
ret=func(*args,**kwargs)
stop=time.time()
print(func.__name__+'运行时间为%f'%(stop-start))
return ret
return x
@timer
def f1():
time.sleep(2)
print('f1运行')
return 'f1的返回值'
print(f1())
f1运行
f1运行时间为2.003750
f1的返回值