def w1(fun): def inner1(arg): print("h") return fun(arg) return inner1 @w1 def w(arg): print(‘ello‘) w()
理解:1、代码从上到下执行,将w1放内存,然后遇到了@w1
2、@w1就会把w函数,当作参数放入w1中,既:fun = w,就会执行w1函数
3、执行w1函数时,将inner1放内存,并且返回一个inner1函数名给w 既然 w = inner1
4、此时w()函数仍然存在,与其同名的w变量(既inner1)指向新的函数inner1()
5、继续往下执行,当遇到w()时,先执行新的w()函数(既inner()函数),打印出h
6、在调用原始函数,打印ello
时间: 2024-10-12 08:07:59