Seite 1 von 1

richtige Übergabe von Variablen...

Verfasst: Dienstag 20. Juli 2004, 10:54
von genrich
Hi...

Programmiere gerade so rum... Dabei unterteile ich mein Programm in keline Häppchen in verschiedene PY-Files die ich per import einbinde... In diesen "Routinen"-PY-Files sind i.d.R. nur eine fette class...

Mein Problem ist nun, wie übergebe ich allgemeine Variableninhalte diesen Unterroutinen-Klassen?
Bisher übergebe ich es immer beim erstellen der Instanz:

Code: Alles auswählen

Wert1="WasAuchImmer"
Wert2="UndNochMehr"
Wert3=123456

import UnterroutineDatei

UnterroutineDatei.ArbeitClass(Wert1,Wert2,Wert3)
Aber funktioniert das nicht irgendwie anders?
Ich hab z.B. eine Pfad-Angabe, die für viele Routinen erforderlich ist. Mir erscheind es umständlich dieser immer beim Aufruf übergeben zu müssen... Gibt es keine Elegantere Lösung?

Verfasst: Dienstag 20. Juli 2004, 11:41
von NOTZE
hm es ist doch gut und richtig die werte beim Konstruktor aufruf mitzugeben.
Wo liegt ein problem?

Verfasst: Dienstag 20. Juli 2004, 11:44
von genrich
Irgendwie ist es lästig, wenn eine Variable für alle Routinen gilt...

Verfasst: Dienstag 20. Juli 2004, 12:36
von fs111
genrich hat geschrieben:Irgendwie ist es lästig, wenn eine Variable für alle Routinen gilt...
Diese Aussage verstehe ich gar nicht, was meinst Du damit?

fs111

Verfasst: Dienstag 20. Juli 2004, 12:50
von Dookie
Hi genrich,

Code: Alles auswählen

#!/usr/bin/env python
# Modul Glob.py
# Global gültige Werte fuer eine Anwendung

_glob = {}

def set(name, value, override=False):
    if not override and _glob.has_key(name): #Werte vor ueberschreiben schuetzen
        raise KeyError("%s already set in Glob!" % name)
    _glob[name] = value

def get(name):
    return _glob[name]
damit kannst Du Glob in deine Module importieren und dort dann Werte eintragen mit Glob.set(name, value) die von allen Modulen mit value = Glob.get(name) z.B. in der Initroutine geholt werden können. Du Kannst die Werte auch gleich in dem Modul bestimmen und zuweisen, falls sie sich über die Laufzeit nicht ändern.

Gruß

Dookie

Verfasst: Donnerstag 22. Juli 2004, 10:49
von genrich
Danke für die Anregung... Benutze ich jetzt auch so! 8)

Verfasst: Sonntag 25. Juli 2004, 10:07
von Gast
@Dookie: Cool, sowas habe ich gesucht!
Als ich dein Snippet gesehen habe, dachte ich: Hey, das kenne ich doch noch aus meiner C++-Zeit.

thx, querdenker

Verfasst: Sonntag 25. Juli 2004, 10:09
von querdenker
OT:
der Gast war ich, wer oder was auch immer hat mich gerade abgemeldet(ich denke mal, das war der Feuerfuchs(der zickt momentan noch ein wenig)