2016-12-30 2 views
-2

Ich weiß, dass dies eine Million Mal gefragt wurde, aber ich verstehe immer noch nicht, warum es passiert. Es ist mein erstes Projekt in Python. Ich habe C++ vorher nur wirklich benutzt.NameError: globaler Name "foo" ist nicht definiert

Es gibt insgesamt 3 Python-Dateien: fooA, fooB und fooC. fooC spielt keine Rolle, aber die anderen sehen wie folgt aus:

Foob:

from fooC import bla 

class fooB: 
    def __init__(self): 
    a = bla() 
    ... 

fooA:

import fooB 

def main(): 
    foo1 = fooB() 
    ... 

und erhalte ich die Fehler

NameError: global name "foo" is not defined

Kann jemand helfen Sie mir?

+3

Es gibt kein 'foo()' in Ihrem Code. Wenn Sie stattdessen 'fooB' verwenden möchten, müssen Sie es als' fooB.fooB() '* nennen, d. (. ) * –

+1

Nun, was soll 'foo()' sein? Es ist nicht in dem Code definiert, den Sie gezeigt haben – UnholySheep

+0

immer in Frage zeigen vollständige Fehlermeldung (Traceback) - es gibt andere nützliche inforamtion - dh. Welche Linie macht ein Problem? Sie verwenden 'foo' in Beispielcode nicht, so muss das Problem in einem anderen Teil sein. – furas

Antwort

0

Sie führen tatsächlich

import fooB 
fooB() 

Wo Foob ein Modul ist. Sie müssen fooB.fooB() ausführen oder from fooB import fooB verwenden (was später vielleicht etwas verwirrend sein kann, da Sie sich immer fragen müssen, ist das jetzt das Modul oder die Funktion).

Verwandte Themen