[python] globalni promenne
Michal Molhanec
molhanec na seznam.cz
Středa Únor 12 11:10:14 CET 2003
On Wed, 12 Feb 2003 08:04:34 +0100 Petr Mach <gsl na seznam.cz> wrote:
> Protoze se mi libi jeho osatani vlastnosti. Je multiplatformni, dobre
> podporovany (jsou pro nej knihovny ktere potrebuji), moduly se
> kompiluji, z programu se da udelat vcelku mala samospustitelna
> aplikace, takze program se da snadno sirit - nevyzaduje instalaci
> jazyku a potrebnych pouzitych knihoven a podobne, pritom se pro
> nej jako interprtovany jazyk snadno pise. Zadny jiny jazyk
> odpovidajicich vlastnosti neznam. Kazdy ma neco a Python je vyhovujici
tak to mate tezky (i kdyz IMHO Perl ma vetsinu tech vlastnosti)
> mix, ale to odsazovani povazuji za nestastny experiment a nebo
> snahu za kazdou cenu se necim odlisit. Imho je s tim vic starosti nez
> radosti.
no vidite, ja si myslim pravy opak :-) je to vec, kterou si me Python
naprosto ziskal, po ktere jsem radu let touzil
> Kdyz udelam dalsi modul s func2(), tak tuto funkci mohu ve func1()
> pouzivat, maji stejny namespace, ale globalni promenou ne, proto
> myslim ze se to stejne nechova.
ale v okamziku, kdy napisete func2=nejakajinafce tak se to taky nezmeni
globalne
zkuste nasledujici kod:
***************** glob.py
def f():
print "g"
globVar=["set from glob"]
***************** fun1.py
from g import *
def ff():
print "f"
def fun1():
global globVar
global f
globVar[0]="set from fun1()"
f = ff
****************** main.py
from g import *
from fun1 import *
def fm():
print "m"
def main():
global globVar
global f
globVar[0]='set from main()'
f=fm
print globVar
f()
main()
print globVar
f()
fun1()
print globVar
f()
Další informace o konferenci Python