ich dieses Problem habe, wo ich versuche, eine Klassenvariable zu ändern, die in zwei separate Dateien importiert wurden.Ändern ein importiertes Klassenvariable
In settings.py
.
class Settings:
Flag = True
In slave.py.
from settings import Settings
if(...):
Settings.Flag = False
print('Flag is False')
else:
...
In main.py
from settings import Settings
While True:
print('Status of Flag : ' str(Settings.Flag))
Auch wenn ich es ändern, so wird Flag auf False in Slave.py geändert. Es gibt immer noch True in main.py zurück.
Ich dachte, das sein könnte, weil ich die Einstellungen in beiden Slave.py & main.py. importieren Aber das herauszunehmen, gibt mir einen Fehler.
Vielen Dank dafür. Allerdings wird der Flag-Status jetzt in main.py korrekt angezeigt. Aber wenn es in Slave.py geändert wird. Das main.py-Flag gibt nur den Status wieder, der in main.py festgelegt ist. Ich brauche den Status in meinem Programm gleich zu sein. – Keva161
Ich bin mir nicht sicher, ob du deine ganze Bedeutung mitgeteilt hast. Es könnte nützlich sein, das 'Settings'-Objekt und die' change_value'-Funktion in dasselbe Modul zu stellen.Dann würden Sie beobachten, dass der Wert des Flags von jedem Modul geändert werden kann, das das 'settings' Modul importiert hat. Es ist nur ein kurzer Schritt von dort, um 'change_value' eine Methode der' Settings' Klasse zu machen. – holdenweb