装饰器:
定义:本质时函数,(装饰其他函数)就是为其他函数添加功能。
原则:1,不能修改被装饰的函数的源代码
2,不能修改被装饰的函数的调用方式。
3,
实现装饰器知识储备:
1,函数即“变量”
2,高阶函数
A:把一个函数名当作实参传给另外一个函数(在不修改被装饰器函数源代码的情况下为其添加功能)
B:返回值中包含函数名(不修改函数的调用方式)
3,嵌套函数
import time
def timmer(func):
def warpper(*args,**kargs):
start_time = time.time()
func()
stop_time = time.time()
print('the func run time is %s'%(start_time - stop_time))
@timmer
def test1():
time.sleep(3)
print("in the test1")
test1()
高阶函数:
import time
def bar():
time.sleep(3)
print("in the bar")
print(bar)
def test2(func):
print(func)
return func
print(bar)
#bar = test2(bar)
#print(bar)
#bar()