globale variablen in python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
PNS-Richi
User
Beiträge: 68
Registriert: Donnerstag 17. Januar 2008, 01:48

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
Benutzeravatar
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.
[quote="Roy Batty"]All those moments will be lost in time, like tears in rain ... time to die.[/quote]
Benutzeravatar
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.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Und bedenke auch, dass es in Python keine „richtigen“ globalen Variablen gibt. Global bedeutet global im Modul (also pro Datei).
PNS-Richi
User
Beiträge: 68
Registriert: Donnerstag 17. Januar 2008, 01:48

Dies steht am Anfang vom Script.

Code: Alles auswählen

LIST_PATH = '/etc/Guard/'
Dies kommt innerhalb einer Funktion, die in einer Klasse ist.

Code: Alles auswählen

UnboundLocalError: local variable 'LIST_PATH' referenced before assignment
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.
bords0
User
Beiträge: 234
Registriert: Mittwoch 4. Juli 2007, 20:40

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
Dann hat Cofi wohl recht.

"global" habe ich bisher eigentlich nur zum Code-Golfen gebraucht: https://www.spoj.pl/problems/INTER/
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Also, Code her. Sofort! :P
PNS-Richi
User
Beiträge: 68
Registriert: Donnerstag 17. Januar 2008, 01:48

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
Antworten