解決策: エラーは、関数が実際にはメソッドであるということでした。
関数の変数をシミュレートするためにデコレータを使用しようとしています。以下の最後の行でこのエラーが発生するのはなぜですか?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