Seite 1 von 1

globale variablen in python

Verfasst: Sonntag 8. März 2009, 19:04
von PNS-Richi
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

Verfasst: Sonntag 8. März 2009, 19:28
von Blade Runner
``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.

Verfasst: Sonntag 8. März 2009, 19:40
von cofi
`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.

Verfasst: Sonntag 8. März 2009, 19:59
von Darii
Und bedenke auch, dass es in Python keine „richtigen“ globalen Variablen gibt. Global bedeutet global im Modul (also pro Datei).

Verfasst: Sonntag 8. März 2009, 20:10
von PNS-Richi
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.

Verfasst: Sonntag 8. März 2009, 20:52
von bords0
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/

Verfasst: Sonntag 8. März 2009, 21:01
von Dauerbaustelle
Also, Code her. Sofort! :P

Verfasst: Sonntag 8. März 2009, 21:28
von PNS-Richi
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