python Klassenname nicht definiert Fehler
Habe ich eine Klasse die ich brauche, um zu instanziieren, um eine Methode aufzurufen, die es enthält. Wenn ich den Zugriff aus einer anderen Klasse funktioniert es einwandfrei aber wenn ich im terminal sagt es :
File "myClass.py", line 5, in <module>
class MyClass:
File "myClass.py", line 23, in ToDict
td=MyClass()
NameError: name 'MyClass' is not defined
Kopieren Sie den code:
class MyClass:
def convert(self, fl):
xpD = {}
# process some stuff
return xpD
if __name__ == "__main__":
source = sys.argv[1]
td = MyClass()
needed_stuff = td.convert(source)
print(needed_stuff)
- Vermutlich haben Sie importiert das Modul mit
import toDict
. In diesem Fall, die Klasse steht alstoDict.ToDict
, nicht nurToDict
. Wenn Sie darauf bestehen, auf der nameToDict
, importieren Sie es mitfrom toDict import ToDict
. - Dies hat mir geholfen... vielen Dank.. ich verbrachte Stunden herauszufinden, warum es ist nicht zu erkennen..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass Ihr
if __name__ == "__main__"
block innerhalb der Klasse definition. Dies wird einen Fehler verursachen, da der code innerhalb derif
ausgeführt werden als Teil der Klasse erstellt wird, bevor die Klasse gebunden an einen Namen.Hier ein einfacheres Beispiel dieser Fehler:
Wenn Sie formatieren Sie Ihren code wie folgt (das heißt, mit der
if
unindented auf der obersten Ebene), sollte es ordnungsgemäß funktionieren: