Also hier ist der Code, der x
innerhalb einer Funktion verwendet.Verwenden von globalen Variablen innerhalb einer Python-Funktion
x = 1
def f():
y = x
x = 2
return x + y
print x
print f()
print x
aber Python ist nicht die Variable aus Funktionsumfang nachschauen gehen, und es ergibt sich UnboundLocalError: local variable 'x' referenced before assignment
. Ich versuche nicht, den Wert der globalen Variable zu ändern, ich will es nur verwenden, wenn ich y=x
mache.
Auf der anderen Seite, wenn ich es einfach verwenden, im Gegenzug statment, funktioniert es wie erwartet:
x = 1
def f():
return x
print x
print f()
Kann jemand erklären, warum?
Problem ist nicht mit y = x' aber 'y = x' mit' x = 2' zusammen. Entfernen Sie einen von ihnen und dieser Fehler verschwindet. (aber Sie können anders werden :)) – furas
aber 'x = 2' ist unter' y = x', also ich meine python sollte zuerst mit 'y = x' umgehen, 1 zu y zuweisen und dann auf der Linie' x = 2 'erstellen Sie eine neue lokale Variable und weisen Sie ihr einen Wert 2 zu. ist es nicht? –