[python] globalni promenne

Michal Molhanec molhanec na seznam.cz
Středa Únor 12 01:32:48 CET 2003


On Wed, 12 Feb 2003 01:05:07 +0100 Petr Mach <gsl na seznam.cz> wrote:

> No, ja bych to prave nerad zapouzdroval. Tenhle muj problem
> vznikl tak, ze uz mi soubor s funkcemi prerostl pres hlavu
> a chtel jsem jej rozdelit na vic casti, ale zda se, ze Python
> je nepruzny a neni to u nej mozne, bez uprav veskereho kodu.
> Navic nektere prom uz maji treba takovouhle anotaci:
>    vysledky['anketa'][aAnketa]['odpoved'][aOdpoved][i]
> A nechci to jeste prodluzovat, kdyz se maji dve takove promm.
> porovnavat, uz se to nevejde ani na obrazovku a Python navic
> ma neprehledne formatovani kodu, kdyz bloky urcuje odsazovanim,
> misto aby to delal treba slozenyma zavorkama.
> 

muzu se zeptat, proc jste si vybral zrovna Python? Na tomhle je v podstate
zalozen a pokud se mi to nelibi tak je lepsi pouzit jazyk ktery se mi libi
vic

obecne si myslim, ze vas programatorsky styl neni pro Python uplne idealni
a jazyku existuje spousta, tak proc zrovna ten, ktery se mi nelibi ?

> > 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.
> > 
> To jsem pochopil, ale take jsem pochopil, ze konstrukci
>    from modul import *
> vlozim namespace modulu do skriptu, u funkci to tak
> alespon funguje, u promm. z nejakeho duvodu ne.

IMHO se to chova jak pro fce tak pro promenne stejne, pouze funkce malokdy
prirazujete takze se to neprojevi

jinak to chovani naprosto odpovida dokumentaci:
"The from form does not bind the module name: it goes through the list of
identifiers, looks each one of them up in the module found in step (1), and
binds the name in the local namespace to the object thus found."




Další informace o konferenci Python