[python] globalni promenne

Jan Matejka matejka na datasys.cz
Úterý Únor 11 12:43:40 CET 2003


A co takto?

naprosto prazdny modul glb, nebo pripadne s inicializaci glob promennych
ve vsech ostatnich modulech  import glb
ke globalnim promennym pristupovat z techto modulu takto:

nastaveni:
glb.var1="ahoj"

pouziti treba z jineho modulu:
print glb.var1

prazdny modul ma vlastne funkci C++ namespace. V Pythonu global, pokud se
nemylim znamena "tato promenna neni lokalni automaticka promenna tohoto
bloku ale globalni promenna tohoto modulu" takze co modul to vlastni
globalni promenne.

JM

----- Original Message -----
From: "Petr Mach" <gsl na seznam.cz>
To: "Konference u¾ivatelù Pythonu a spol." <python na py.cz>
Sent: Tuesday, February 11, 2003 11:40 PM
Subject: [python] globalni promenne


> Dobry den,
>
> z PHP jsem zvykly mit globalni promenne v jednom
> souboru a ten pak includovat do funkci. Takze pak
> mam jednoduchou spravu techto promenych. Kdyz
> potrebuju dalsi, jednoduse ji pridam do toho souboru
> a je pristupna automaticky ve vsech funkcich.
>
> Nemusim pak jak osel do vsech funkci predavat
> handler na databazi, informace o uzivateli jako
> jeho id nebo ty nejcasteji pouzivane datove
> promenne.
>
> V pythonu mi to ale nefunguje, mam soubory
>
> *** glob.py ***
> global globVar
> globVar="set from glob"
>
> *** fun1.py ***
> def fun1():
>    global globVar
>    globVar="set from fun1()"
>
> *** main.py ***
> from glob import *
>
> from fun1 import *
> from fun2 import *
>
> def main():
>    global globVar
>    globVar='set from main()'
>
> print globVar
> main()
> print globVar
> fun1()
> print globVar
>
> ********************
> Kdyz spustim ten main.py soubor, dostanu tento
> vysledek:
> set from glob
> set from main()
> set from main()
>
> A ja bych si predstavoval a potreboval, aby ten
> posledni radek byl set from fun1(). Zkousel jsem
> dat ten from global import * i do soubory fun1.py,
> ale nicemu to nepomohlo, takze nevim, jak se
> mezi funkcemi predavat globalni data.
>
> Jak toho mam dosahnout?
> Idealni by bylo, kdybych mohl psat:
>
> def fun1():
>    from global import *
>    globVar="set from fun1()"
>
> tedy obdobu toho co se v PHP dela takto:
> function fun1(){
>    include "global.php";
>    globVar="set from fun1()";
> }
> Coz mi zpristupni ve funkci vsechny globalni promm.
> at uz jsou kdekoliv, ale to Python zrejme nezvlada.
> Tak doufam ze aspon zvlada sdileni globalnich promennych
> mezi funkcemi z ruznych souboru, protoze psat vsechny
> funkce do jednoho megoveho souboru je tezce neprehledny
> a predavat je vsechny jako argument funkcce taky neni
> zrovna to nejlepsi. Kazdopadne, jestlize v jednom
> souboru nadefinuji nejaka staticka data, treba rozsahle
> pole nejakych hodnot, tak k nemu potrebuju mit pristup
> z ruznych funkci definovanych v ruznych souborech.
>
> Petr Mach
>
>
>
>
>
>
>
>
>


----------------------------------------------------------------------------
----


> _______________________________________________
> python mailing list
> python na py.cz
> http://py.cz/mailman/listinfo/python
>


---
Odchozí zpráva asi neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.449 / Virová báze: 251 - datum vydání: 1/27/03



Další informace o konferenci Python