想象一下:
def b1(fnc):
print "b1"
return fnc
@b1
def a1():
print "a1"
if __name__ == "__main__":
a1() # will print b1 a1
所以,当我使用@b1
时,a1会变成a1 = b1(a1)
,对吗?
然后,当我说:
a1()
这是需要翻译的内容:
这将变成:
b1(a1)
然后进入:
print "b1"
return fnc
fnc被调用的具体位置/来源在哪里/是谁?我感觉自己在问一个很蠢的问题,但我想要明白。