[python] globalni promenne

Zdenek Pavlas zdenek.pavlas na nextra.cz
Středa Únor 12 15:47:08 CET 2003


Petr Mach wrote:

> To se ale mylite. Jestlize mam datove promenne, ktere
> pouziva naprosta vetsina funkci, resp. nejaka velka
> skupina funkci, je zadouci aby k nim meli transparentni
> a snadny pristup. A to i v pripade, ze z duvodu velkeho
> poctu jsou kvuli prehlednosti definovany ve vice
> souborech. Jde o to, jak jazyk umozni s globalnimi promm.
> nakladat, aby v nich byl poradek a ne zmatek. Jazyk
> PHP nebo treba JavaScript s tim nema zadne problemy.

Myslim ze python s tim take nema problemy, staci pouzit
"import modul", a pak se odkazovat na "modul.global_var".
Problem je pouze pokud mate globalni promenne v modulu
__main__, a chcete se na ne dostat z jineho modulu.
Nevim o jine metode nez pres sys.modules['__main__'] :(

> Idealni je mit je v oddelenem souboru (nebo souborech
> u rozsahlych souboru, s vice globalnimi celky) a vkladat
> je tam, kam je potreba. Ze ma Python pro kazdy soubor
> svuj globalni prostor je vynikajici vec, to ze ale
> mezi vybraanymi soubory nejde ty globalni promenne
> exportovat/sdilet na explicitni pozadavek, uz ale
> vnimam jako chybu.

Sdilet je je. Pokud chcete z nejakeho duvodu opravdu
"superglobalni" promenne, lze je nacpat do __builtins__.
Silne se to ale nedoporucuje, kod je pak neprehledny
protoze vola funkce ktere odnikud neimportoval.

-- 
Zdenek Pavlas
Application Developer
NEXTRA Czech Republic s.r.o.  http://www.nextra.cz



Další informace o konferenci Python