Hallo,
irgendwie hab ich ein Problem mit Globalen Variablen.
Wenn ich am Anfang vom Python Script eine Variable setze und versuche diese aus einer Klasse auszulesen, dann klappt es nicht, auch nicht mit dem "global" Statment. Kommischerweise geht es bei manchen Variablen.
Klar ich könnte es einfach als Parameter übergeben, das mache ich auch meistens, nur hier gehts um Globale Einstellungen, würde ich die ständig übergeben, wären die Parameter zum übergeben elendslang.
Was gut klappt ist eine Klasse zum ablegen von Globalen Variablen.
Was muss ich tun um in Python Globale Variablen zu Deklarieren?
lg Richi
globale variablen in python
- Blade Runner
- User
- Beiträge: 21
- Registriert: Montag 23. Februar 2009, 11:41
``global`` kannst du in die Tonne treten.
Variablen, die ausserhalb jeder Struktur, also "am Anfang" initialisiert werden, sind global. Die sollten also überall verfügbar sein.
Variablen, die ausserhalb jeder Struktur, also "am Anfang" initialisiert werden, sind global. Die sollten also überall verfügbar sein.
[quote="Roy Batty"]All those moments will be lost in time, like tears in rain ... time to die.[/quote]
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
`global' brauchst du nur um den Wert eines Namen in einem globalen Namensraum zu überschreiben, da du dass nicht vorhast brauchst du das nicht. Auch sollte man das gleich ganz lassen, da es Fehler provoziert.
Möglich, dass du den Namen lokal neu vergeben hast?
Ansonsten ist es nur Herumraterei ohne Code.
Möglich, dass du den Namen lokal neu vergeben hast?
Ansonsten ist es nur Herumraterei ohne Code.
Dies steht am Anfang vom Script.
Dies kommt innerhalb einer Funktion, die in einer Klasse ist.
Darüber ist noch eine Variable mit dem Namen "LOG_PATH", Zwei mal der selbe Code. Bei einem kommt der Fehler beim anderen nicht.
Code von der Version muss ich erst suchen.
Code: Alles auswählen
LIST_PATH = '/etc/Guard/'
Code: Alles auswählen
UnboundLocalError: local variable 'LIST_PATH' referenced before assignment
Code von der Version muss ich erst suchen.
Dann hat Cofi wohl recht.PNS-Richi hat geschrieben:Dies kommt innerhalb einer Funktion, die in einer Klasse ist.Code: Alles auswählen
UnboundLocalError: local variable 'LIST_PATH' referenced before assignment
"global" habe ich bisher eigentlich nur zum Code-Golfen gebraucht: https://www.spoj.pl/problems/INTER/
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Also, Code her. Sofort! :P
Also hier hab ich kein Backup mehr von der Fehlerhaften Version.
Wenn ich alles in einer Klasse speichere, dann geht es. Versuche ich es am Script Anfang mit Variablen so gehen nicht alle, dann kommt der Fehler.
Vll. hab ich in der Arbeit noch ein Backup, kann ich aber erst Morgen suchen, wenn ichs nicht finde rekonstruiere ich es einfach.
lg Richi
Wenn ich alles in einer Klasse speichere, dann geht es. Versuche ich es am Script Anfang mit Variablen so gehen nicht alle, dann kommt der Fehler.
Vll. hab ich in der Arbeit noch ein Backup, kann ich aber erst Morgen suchen, wenn ichs nicht finde rekonstruiere ich es einfach.
lg Richi