python装饰器1
@+函数名
将装饰器下方的函数作为@后面这个函数的参数,并且执行@后面这个函数
例子:
def _4ag(*args):
print("我是四阿哥")
def bug():
print('我是8a哥')
# 什么都不会输出
def _4ag(*args):
print("我是四阿哥")
@_4ag
def bug():
print('我是8a哥')
# 输出
# 我是四阿哥
相当于执行了:
def _4ag(*args):
print("我是四阿哥")
def bug():
print('我是8a哥')
_4ag(bug)
然后,再将结果赋值给下方的函数
也就是说如果装饰器函数,内部return了另一个函数,那么我们再去执行装饰器下面这个函数那就是执行装饰器return的那个函数
def _4ag(fun):
def inner():
print('我是四阿哥')
return inner()
@_4ag
def bug():
print('我是8a哥')
bug
# 输出
# 我是四阿哥