解决方案:错误是我的函数实际上是一个方法。
我正在尝试使用装饰器来模拟函数的变量。为什么我在下面的最后一行收到此错误?global name 'onecmd' is not defined
def static_var(varname, initial_value):
def decorate(func):
setattr(func, varname, initial_value)
return func
return decorate
@static_var("last", None)
def onecmd(self, line):
if line == "lastcmd":
line = onecmd.last
else:
onecmd.last = line