为什么这不起作用?我怎样才能让它发挥作用?也就是说,如何让 gu 在我的修饰函数中可访问?
def decorate(f):
def new_f():
def gu():
pass
f()
return new_f
@decorate
def fu():
gu()
fu()
我是否需要以某种方式将 gu 添加到已定义函数的字典中?或者我可以在调用它之前将 gu 添加到 f 的本地命名空间吗?
最佳答案
如果您需要将 gu
传递给 fu
,您需要通过参数明确地执行此操作:
def decorate(f):
def new_f():
def gu():
pass
f(gu)
return new_f
@decorate
def fu(gu):
gu()
fu()
关于python - 在装饰器中定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1141902/