J'ai écrit le cours suivant:
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
La logique est absurde - ignorez-la. Ce que j'essaie donc d'appeler une méthode d'instance à partir d'une autre méthode d'instance - et j'obtiens un NameError
. À l'origine, je pensais que cela était dû à foo()
appelant foobar()
avant qu'il ne soit défini - mais changer l'ordre des définitions de fonction dans le script ne faisait aucune différence.
Quelqu'un est-il à l'origine de cette erreur et comment y remédier?
Python n'étend pas automatiquement le code à la classe locale; vous devez le lui dire.
pp = self.foobar(arg1, arg2)