wo wir grad bei Modulen sind...

Georg Mischler gm at licht.hl-technik.de
Sun May 10 14:46:49 EDT 1998


Christian Tismer erlaeuterte:
Status: O

> Ich nehme als Beispiel mal an, Du brauchst als "shared Variable"
sowas
> wie ein Dictionary, und Du hast sowas wie ein Hauptmodul:
> 
> # module haupt
> glob = {}
> 
> # module unter1
> from haupt import glob
> 
> # module unter2
> from haupt import glob
> 
> und so weiter. Kannst auch verschiedene Namen nehmen (wenn das der 
> Lesbarkeit dient :-), aber es ist immer die eine und dieselbe
> Variable, besser gesagt Object.


Ouch!
Das wiederspricht einer meiner Behauptungen von kuerzlich... sollte
die
Verwirrung etwa bei mir zuhause sein?

Ich habe das eben mal exemplarisch mit zwei kleinen modulen
ausprobiert,
und bin dabei wiedermal wesentlich schlauer geworden!

Der erste Versuch war mit einfachen Variablen, welche einen integer
zugewiesen kriegen. Hier hat es, wie ich erwartete, nicht
funktioniert.
D.h. die lokale Kopie (nach from a import *) kann geaendert werden,
ohne dass das Original etwas davon erfaehrt. Umgekehrt kann ich per
Zugriffsfunktion im Originalmodul den "remote"-Wert setzen, ohne dass
dies meine lokale Kopie beeinflusst.

Zum Glueck habe ich das ganze dann noch mit einer Liste getestet...

Soweit ich es jetzt verstehe, aendert die Anwendung von "import foo"
oder "from foo import *" nur etwas fuer immutable Typen. Ist das
richtig?

Langsam wird so auch die Python-Philosophie fuer Zuweisungen etwas
transparenter...einfach genau umgekehrt wie ueblich ;). Und noch eine
Eigenheit wird deutlich, welche obiges wahrscheinlich voraussetzt:
"Die Zahl fuenf gibt's nur einmal!"

Als Fazit: Dass Du bei obigem Beispiel gerade ein dict zur globalen
Datenhaltung nimmst, ist definitiv kein Zufall! Ohne den kurzen
Test waere ich sicher gelegentlich noch mal ueber dieses "feature"
gestolpert (ich bin ja auch kein Informatier ;), obwohl ich meistens
der Schoenheit halber voll qualifizierte Namen verwende.


"you got to know such things as a king!"...

-schorsch

[ absender-adresse kaputt, bitte ggf. schorsch at schorsch.com verwenden
]

______________________________________________________________
   python-de          the German Python mailing list
send messages to:   <mailto:python-de at solar.skyport.net>
list manager: <mailto:owner-python-de at solar.skyport.net>
______________________________________________________________




More information about the Python-de mailing list