richtige Übergabe von Variablen...

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.
genrich
User
Beiträge: 91
Registriert: Sonntag 27. Juni 2004, 17:46

richtige Übergabe von Variablen...

Beitragvon genrich » Dienstag 20. Juli 2004, 10:54

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?
Benutzeravatar
NOTZE
User
Beiträge: 106
Registriert: Mittwoch 21. Januar 2004, 20:28

Beitragvon NOTZE » Dienstag 20. Juli 2004, 11:41

hm es ist doch gut und richtig die werte beim Konstruktor aufruf mitzugeben.
Wo liegt ein problem?
genrich
User
Beiträge: 91
Registriert: Sonntag 27. Juni 2004, 17:46

Beitragvon genrich » Dienstag 20. Juli 2004, 11:44

Irgendwie ist es lästig, wenn eine Variable für alle Routinen gilt...
Benutzeravatar
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

Beitragvon fs111 » Dienstag 20. Juli 2004, 12:36

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
Pydoc-Integration in vim - Feedback willkommen: http://www.vim.org/scripts/script.php?script_id=910
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Dienstag 20. Juli 2004, 12:50

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

Code: Alles auswählen

#!/usr/bin/env python
import this
genrich
User
Beiträge: 91
Registriert: Sonntag 27. Juni 2004, 17:46

Beitragvon genrich » Donnerstag 22. Juli 2004, 10:49

Danke für die Anregung... Benutze ich jetzt auch so! 8)
Gast

Beitragvon Gast » Sonntag 25. Juli 2004, 10:07

@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
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

Beitragvon querdenker » Sonntag 25. Juli 2004, 10:09

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)

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]