装饰器就是将被装饰的函数丢入装饰器函数内部。
(1)
@funA def funB():
等价
funB = funA(funB)
(2)
#funA 作为装饰器函数
def funA(fn):
#...
fn() # 执行传入的fn参数
#...
return '...'
@funA
def funB():
#...
等价
def funA(fn):
#...
fn() # 执行传入的fn参数
#...
return '...'
def funB():
#...
funB = funA(funB)
(3)例子
#funA 作为装饰器函数
def funA(fn):
print("C语言中文网")
fn() # 执行传入的fn参数
print("http://c.biancheng.net")
return "装饰器函数的返回值"
@funA
def funB():
print("学习 Python")
输出是:
C语言中文网 学习 Python http://c.biancheng.net



