Ich habe ein Modul, in dem es eine Funktion gibt, die eine Eingabe nimmt, sie verarbeitet und dann eine Ausgabe zurückgibt. Wenn ich die Funktion dieses Moduls anrufe, scheint es zu funktionieren, aber ich kann nicht auf die Variable 'result' vom Hauptprogramm zugreifen.Wie auf eine globale Variable in einer Funktion zugreifen?
file_a.py:
result = False
def test(incoming):
if incoming > 3:
result = True
else:
result = False
print(result)
return result
file_b.py:
import file_a
for i in range(5):
file_a.test(i)
print(i, file_a.result)
result
von abfrage innerhalb test()
erzeugt das gewünschte Ergebnis (dh er auf TRUE ändert, wenn erwartet), sondern aus der Hauptschleife file_a.result
ist immer falsch.
Das ist richtig. Aber abhängig davon, was Sie wirklich tun wollen, können Sie es auch als lokal belassen und eine Zuweisung in file_b vornehmen (ändern Sie file_a.test (i) zu a = file_a.test (i) und dann gibt a den Wert zurück durch den Funktionsaufruf.Sie können es sogar 'Rückkehr' anstatt 'a' nennen. – ViennaMike