2015-01-01 17:47 GMT+01:00 Martin <lisi...@seznam.cz>:
>
> Nejdříve odlehčení. Poslední port Pythonu verze 2.3.3. Ukázka jednoduchého 
> GUI pomocí ESCAPE sekvencí na počítači Amiga (Windows nemá přímou podporu 
> ESCAPE sekvencí!)
>
>
>
> https://www.youtube.com/watch?v=JzN1Fl-T7jw
>
>
>
> A teď můj dotaz, stačí mi zodpovědět chování Pythonu verze 2.X v rámci PC.
>
>
>
> Zkopíruji to co jsem se ptal jinde:
>
>
>
> Takový technický dotaz, co se týče náročnosti na pamět. V rámci Pythonu, tedy 
> v rámci skriptovacího jazyka. Je pamětově méně náročný, když definuji 
> proměnnou za IF/ELIF? Nebo se tahle proměnná načte do paměti i když podmínka 
> IF/ELIF nebude splněna? Na zápis použiji N-tici.
>
> S IF/ELIF:
> if vstup == iso: tabulka = ("A","B"), ("B","C")
> elif vstup == latin2: tabulka = ("D","E"), ("F","G")
>
> Bez IF/ELIF:
> iso = ("A","B"), ("B","C")
> latin2 = ("D","E"), ("F","G")
>
> Můj odhad: asi se to načte do paměti i s konstrukcí IF/ELIF, ale program s 
> konstrukcí IF/ELIF bude o něco méně pamětově náročný, protože nebudu 
> definovat více proměnných ale jen jednu "tabulka" a možná ani to ne, protože 
> pokud si to Python potřebuje zapamatovat vše naráz, tak bude mít v paměti 
> nekolik krát proměnnou "tabulka", dle našeho příkladu 2 krát. Ale dost 
> filozofie, programování je o nečem jiném, jak to tedy funguje?
>
> Rěším to, protože každá tabulka by měla obsahovat něco kolem 1800 znaků.
>
>

Odpovím pro CPython, jiné interpretery jazyka Python se můžou chovat jinak :)

Konstantní literály, tedy konstanty zapsané přímo v kódu, jako třeba
(("A","B"), ("B","C")) výše, jsou součást zkompilovaného modulu, a do
paměti se načtou s ním. Je jedno, jestli se pak použijí nebo
nepoužijí. Proměnné v Pythonu jsou jen jména (pro C-čkaře: ukazatele),
která se přiřazují hodnotám.
Je možnost to dát do zvláštních modulů:

if vstup == 'iso':
    from tabulka_iso import tabulka
elif vstup == 'latin2':
    from tabulka_latin2 import tabulka

a v tomhle případě by se načetl jen daný modul a data v něm. Nebo
(většinou lepší varianta) se dají data dát do datového souboru a
přečíst pomocí `csv` nebo `json` ze std. knihovny.
_______________________________________________
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python

Visit: http://www.py.cz

Odpovedet emailem