2013-03-24 3 views
6

Ich versuche einige globale Variablen in einigen Funktionen zu deklarieren und die Datei mit diesen Funktionen in eine andere zu importieren. Ich finde jedoch, dass das Ausführen der Funktion in der zweiten Datei die globale Variable nicht erstellt. Ich habe versucht, eine andere Variable mit demselben Namen erstellen, aber wenn ich die Variable auszudrucken, druckt er den Wert der zweiten Datei aus, nicht der globale WertPython globale Variable Scoping

globals.py

def default(): 
    global value 
    value = 1 

main.py

from globals import * 
value = 0 
def main(): 
    default() 
    print value 

if __name__=='__main__': 
    main() 

Dies wird 0 drucken. Wenn ich value = 0 in Main nicht habe, wird das Programm Fehler (Wert nicht definiert).

Wenn ich value in globals.py außerhalb der Funktion deklarieren, wird main.py nehmen auf dem Wert der globalen value, anstatt den Wert in default()

Was ist der richtige Weg ist value zu bekommen eine globale Variable zu sein in Python?

Antwort

5

Globals in Python sind nur global für ihr Modul. Es gibt keine Namen, die Sie ändern können, die für den gesamten Prozess global sind.

können Sie erreichen, was Sie mit diesem wollen:

globals.py:

value = 0 
def default(): 
    global value 
    value = 1 

main.py:

import globals 
def main(): 
    globals.default() 
    print globals.value 

if __name__ == "__main__": 
    main() 

Ich habe keine Ahnung, ob ein globaler wie dies die ist Der beste Weg, um Ihr Problem zu lösen.