我正在创建一个可以让我做如下事情的装饰工:
@cooldownf(lambda self, **eargs: 30 - self.level)
def method(self, **eargs):
...
这将简单地装饰方法,使它有一个冷却时间。
这一切都很好,现在可以每隔30 - self.level
秒执行该方法。在
但是,我想添加一条消息,如果该方法仍处于冷却状态,则会显示该消息。
我为cooldownf
装饰器添加了一个message
参数,但随后我在装饰器代码中的ìf message:
行中得到了一个错误UnboundLocalError: local variable 'message' referenced before assignment
:
是什么引起的?
我可以在cooldownf
或method_decorator
内部打印message
,但将打印添加到method_wrapper
中会导致错误。
这正是代码,我不能用函数在IDLE中复制它,这与我使用方法有关吗?在
您正在将分配给最里面函数中的
method
:{cd2>没有赋值就不能赋值。你不能和当地人做那样的事。在
因为您不想修改closed over参数,所以需要在这里使用一个新的本地名称:
^{pr2}$相关问题 更多 >
编程相关推荐