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)
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)
2017-05-28
my_sum = dec(my_sum)中:第一个my_sum只是相当于一个函数指针,名字可以随便定义,但是老师定义成与函数my_sum重名,是有深意的,是为了引出后面所讲的装饰器内容。这样的命名类似于装饰器中的执行过程。个人认为不会引起误解。
2017-05-12
老师为什么重载my_sum呢?我猜是为了后面的装饰器做铺垫,不至于让人一下子就懵掉,其实dec(my_sum)赋值给什么变量都是可以的
2017-05-06
最新回答 / 高山之蓝
你说的是应该是外部函数my_sum作为一个变量写入in_dec函数成为它的属性。每次调用都会先按程序顺序进行判断,到return才是调用外部求和函数,而这个外部函数已经存在in_dec中,会直接取用外部函数的。每次调用的外部函数是不变的(作为元组写在函数里面)-。-
2017-05-04