【python3】装饰器
参考文章:
理解Python装饰器(Decorator)
关键点:
写装饰器一定要搞定楚函数名后面带小括号和不带小括号的含义。带小括号,表示调用这个函数,而不带小括号,则表示的是该函数引用地址
简单装饰器:
def a(func):
def wrapper():
print('in a')
return func() #执行func函数中的代码
return wrapper #返回wrapper函数的引用地址
@a #b=a(b) = wrapper的地址
def b():
print('in b')
b()
输出结果:
in a in b
带参数的装饰器
def outer(args): def pri(func): def one(): return func(args) return one return pri @outer('hello') # test=outer('hello')(test) def test(args): return args print(test())
输出结果:
hello