次のクラスを作成しました。
_class myClass(object):
def __init__(self):
pass
def foo(self, arg1, arg2):
pp = foobar(self, arg1, arg2)
if pp:
return 42
else
return -666
def foobar(self, arg1, arg2):
if arg1 == arg2:
return 42
else:
return None
_
論理は無意味です-無視してください。私がそうしようとしているのは、別のインスタンスメソッドからインスタンスメソッドを呼び出すことです-NameError
を取得しています。私はもともと、これが定義される前にfoo()
がfoobar()
を呼び出すためだと思っていましたが、スクリプト内の関数定義の順序を変更しても違いはありませんでした。
このエラーの原因は何ですか、それを修正する方法はありますか?
Pythonはコードをローカルクラスに自動的にスコープしません。あなたはそれを伝える必要があります。
pp = self.foobar(arg1, arg2)