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
谢谢老师传到解惑,之前对这个概念一直不理解,收益颇多,现在还需要点时间和实践来消化.相信老师在让我们如何更好的理解上是花费了心思和精力的,对此努力,表示无条件的感动和感激.
2016-09-02