Python: NameError: Der globale Name 'foobar' ist nicht definiert
Ich geschrieben habe die folgende Klasse:
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
Die Logik ist unsinnig - es zu ignorieren. Was ich versuche zu, so ist der Aufruf einer Instanz-Methode von einer anderen Instanz-Methode - und ich bin immer ein NameError
. Ich ursprünglich dachte, dass dies durch foo()
aufrufen foobar()
bevor es definiert war - aber die Umschaltung der Reihenfolge der Funktionsdefinitionen in das Skript keinen Unterschied gemacht.
Nicht jemand, woran dieser Fehler liegt und wie man es beheben?
InformationsquelleAutor der Frage skyeagle | 2010-11-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Python nicht Umfang-code auf der lokalen Klasse automatisch; Sie müssen es sagen.
http://docs.python.org/tutorial/classes.html
InformationsquelleAutor der Antwort Glenn Maynard