Modul-Import: NameError: Name ist nicht definiert
Wie definiere ich die Funktion im Importer so, dass sie im importierten sichtbar ist? Ich habe es versucht
importer.py
ist
def build():
print "building"
build()
import imported
Wodurch,imported.py
ist einfach
build()
Dies schlägt jedoch fehl
building
Traceback (most recent call last):
File "C:\Users\valentin\Desktop\projects\maxim\miniGP\b01\evaluator\importer.py", line 6, in <module>
import imported
File "C:\Users\valentin\Desktop\projects\maxim\miniGP\b01\evaluator\imported.py", line 1, in <module>
build()
NameError: name 'build' is not defined
Aktualisieren Nachdem ich die Antwort erhalten habe, den zirkulären Import durchzuführen, so dass der Import und der Import voneinander abhängen, muss ich klarstellen, dass dies nicht immer gut ist. Mein Ziel ist es, eine gemeinsame Strategie im importierten Modul anzugeben. Es werden einige benutzerdefinierte Funktionen verwendet, z.build
. Der Benutzer definiert die erforderlichen Funktionen und ruft die Strategie auf. Der Punkt ist, dass die gemeinsame Strategie nicht von bestimmten Benutzerdefinitionen abhängen darf. Ich glaube, dass anstelle vonimport
Ich brauche sowasevaluate(imported.py)
Dies ist meiner Meinung nach eine grundlegende Funktion in jeder Skriptsprache, einschließlich Python. irc: // freenode / python besteht darauf, dass ich verwenden mussimport
aber ich verstehe nicht wie.