Rückkehr Variablen in Funktionen von Python Funktioniert Nicht Richtig

Ich habe versucht, um eine variable in einer Funktion in einer Variablen zu, und verwenden Sie es außerhalb von Ihr:

test = 0

def testing():
    test = 1
    return test

testing()
print(test)

Aber wenn ich es laufen lasse, ist das Ergebnis 0. Wie könnte ich dieses problem beheben?

Ändern Sie den Namen der globalen Variablen test zu g_test und du wirst verstehen. Sie sind zwei völlig verschiedene Variablen, und mit den gleichen Namen, Sie sind einfach nur verwirrend sich.
Es gibt 7 Stimmen, wie dieses schreiben auf eine Antwort, die richtig aussieht. Aber ich glaube nicht, dass jemand tatsächlich erklärt diese. Der eigentliche Fehler in deinem code (der einzige Grund, warum es nicht funktioniert), ist, dass, wenn Sie die Funktion aufrufen, Sie erfassen nicht die return-Wert. Dann drucken Sie ein original unverändert Globale variable. Get Kommentare über Umfang richtig sind. "test" innerhalb Ihrer Funktion im lokalen Bereich und ist eine Kopie, die nicht zu einer änderung des globalen "test" - variable außerhalb der Funktion.
Wenn Sie sind neu in Python, obwohl, Sie sollten google "mutiert versus nonmutating" und Lesen Beiträge auf Stack Overflow über das auch bei der Arbeit mit Listen und Holen Sie sich Verhalten unterscheidet sich von scheinbar ähnlichem code. Wenn Sie "test" als argument haben Sie immer noch zurück zu geben, und es einzufangen, damit es funktioniert. Aber dieses Verhalten ist unterschiedlich für die mutierenden Variablen wie Listen. Hoffe, Sie finden diese hilfreich, neben den code-fixes, die bereits durch andere zur Verfügung gestellt zu Ihrer Frage.
Hoppla - dies ist ein 3 Jahre Alter Beitrag. Ich halt schrieb, dass bis zur Vollständigkeit für jeden, der stößt auf diesen thread, während der Suche um ein problem zu lösen.

InformationsquelleAutor user2399308 | 2013-08-04

Schreibe einen Kommentar