请问这里函数没有被覆盖掉吗?
a_function_requiring_decoration = a_new_decorator(a_function_requiring_decoration)这句话执行以后,怎么理解现在的a_function_requiring_decoration和原来的a_function_requiring_decoration函数之间的区别啊
原来的a_function_requiring_decoration被覆盖后,原函数还存在于内存之中可以被调用? def a():
print ('函数在这里')
a()
#output: 函数在这里
a = 1
a()
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: 'int' object is not callable
这么执行的话,a会背覆盖啊 明天的算法大佬 发表于 2021-5-22 18:10
def a():
print ('函数在这里')
有啥问题啊
你非要弄一样的名字 明天的算法大佬 发表于 2021-5-22 18:10
def a():
print ('函数在这里')
a 确实被覆盖了,但是你认真观察下你图中代码的函数返回值,发现也是个函数所以再次 () 调用是没问题的
也就是说第一次相当于你调用 a_function_requiring_decoration 函数
第二次调用的是 a_new_decorator 函数返回的内部函数 wrapTheFunction
wp231957 发表于 2021-5-22 18:51
有啥问题啊
你非要弄一样的名字
名字一样才叫装饰器啊{:10_323:}
页:
[1]