2016-08-03 10 views
1

Ich versuche, den Wert der globalen Variablen edl_loading-True in Funktion edl_flashing, irgendwie funktioniert es nicht? Kann zu verstehen, jemand zu ändern helfen, warum tut print edl_loading druckt False nachWie lege ich eine globale Variable über Funktionsaufruf fest?

zu True, in dem ich den Wert edl_flashing Anruf ändern
def edl_flashing(): 
    edl_loading = True 
    print edl_loading 


def main(): 
    global edl_loading 
    edl_loading = False 
    print edl_loading 
    edl_flashing() 
    print edl_loading #Why this prints as False 
if __name__ == '__main__': 
    main() 

OUTPUT: -

False 
True 
False 
+0

'edl_loading' in' edl_flashing' dieser Funktion lokal ist. – Pythonista

Antwort

1

Sie müssen die global in Ihre beiden Funktionen nutzen - main und edl_flashing

def edl_flashing(): 
    global edl_loading 
    edl_loading = True 
    print edl_loading 

Ohne die globale Deklaration in der Funktion, ist der Variablenname für die Funktion lokal.

Die obige Änderung ausdruckt

False 
True 
True 
+0

Wenn diese Antwort oder eine andere Lösung Ihr Problem gelöst hat, markieren Sie es als akzeptiert. Nicht nur für die Frage, sondern für alle anderen Fragen, die Sie in Zukunft stellen würden. – Chichi

Verwandte Themen