[python] Py cz globalizace

Pavel Kosina geon na post.cz
Pondělí Listopad 26 21:18:57 CET 2007


Calis.martin na seznam.cz napsal(a):
> jinak řečeno mam problem s tímhle: 
> "pocet = Label(okno2,text=dny[x][0])
> pocet.pack()"
> a pak bych ve višim patře potřeboval udělat tohle: "pocet.destroy()" jenže to nefunguje a zglobalizovat to taky nemohu...
>
>   

Krásné slovo - zglobalizovat ;-) . Řešení je několik:

1/ zglobalizovat - to by samozřejmě mělo jít a pokud ti kolidují jména, 
jednoduše použij jiné
2/ Na nejvyšší úrovni programu si založ třebas slovník a ve funkcích do 
něj přidávej prvky - ty pak budou přístupné vždy a všude
3a/ Na nejvyšší úrovni programu si založ class  a vytvoř jednu instanci, 
jakýsi kontejner proměnných, a v ve funkcích zakládej proměnné instance, 
které pak můžeš používat úplně všude
3b/ využij již některou existující class, pokud máš např. root=Tk(), tak 
ve funkci udělat root.pocet=pocet, a jinde používat 
root.pocet.destroy(). Pozor at nepřepíšeš některou defaultní proměnnou  
- používal bych výhradně česká jména proměnných.

Tak asi tak.


-- 
geon
Pavel Kosina



Další informace o konferenci Python