def deco(func):
def in_deco(x, y):
print('in_deco')
func(x, y)
print('call deco')
return in_deco
@deco
def bar(x, y):
print('in bar', x + y)
print(type(bar))
bar(1, 2)
在最终的这个代码里面,大家可以试试把ind_eco()函数里面的func(x, y)注释掉再运行一次,就会发现原来定义的bar()里面的内容并没有被执行,因为这个时候bar指向的是装饰器返回的函数in_deco()了。希望能帮助大家理解
def in_deco(x, y):
print('in_deco')
func(x, y)
print('call deco')
return in_deco
@deco
def bar(x, y):
print('in bar', x + y)
print(type(bar))
bar(1, 2)
在最终的这个代码里面,大家可以试试把ind_eco()函数里面的func(x, y)注释掉再运行一次,就会发现原来定义的bar()里面的内容并没有被执行,因为这个时候bar指向的是装饰器返回的函数in_deco()了。希望能帮助大家理解
2016-09-06