Vyborne ;).

Tak v tomhle vam vazne nic nebrani pouzit dictionary.
Samozrejme byste to mohl nastavovat jak do locals(), tak
jako atributy tridy a podobne jine konstrukce, ale zase se
dostanete do opacneho problemu, jak zjistit, ktere promenne
mate nadefinovane. Opet by pomohl protikus setattru getattr,
ale akorat tak ucinite kod absolutne neprehledny.

Pokud potrebujete pomoct s praci se slovnikem, nevahejte se
ptat, ale jak exec, tak setattr se ve vasem pripade vyhnete.

Jinak take doporucuju SqlAlchemy, pripadne mozna jednodussi
pro zacatek bude webovy framework Django, ktery ma take sve
objektove relacni mapovani. I kdyz v tomhle konkretnim
pripade uz to chce lepsi znalost tech knihoven, protoze
mapovani objektu na jiz hotove tabulky muze byt trosku
tricky.

Drzim palce, Jakub.


2010/12/21 "Ing. Vladislav Ludík" <[email protected]>:
> Mám stovky tabulek s různou strukturou , které vstupují do stránek. Některé
> hodnoty se zobrazují přímo a některé se modifikují,
>
> Na začátku ani nevím, jaké sloupce tabulka má a jak budou modifikovány.
> Tímto si jen ulehčím zápis v programu.:
>
>     tab = 'tabulka'
>     SQL = 'DESCRIBE `%s`' % tab
>     vysledek = sql(SQL)    # moje funkce sql(SQL) vykoná SQL příkaz
>
>     pole = {}   # zde uložím název sloupce a jeho typ
>
>     for radek in vysledek:
>         Field, Type, Null, Key, Default, Extra = radek
>         pole[Field] = Type
>
>     select = pole.keys()   # seznam sloupců
>     typy = pole.values()   # seznam typů
>
>     SQL = 'SELECT * FROM `%s`' % tab
>     vysledek = sql(SQL)
>
>     # využití různé, například jako přehled dat
>     for radek in vysledek:
>         for i in range(len(select)):
>             print '%s = %s' % (select[i],radek[i])
>
> Taky můžu ve formátování brát ohled na typ atd.
>
> V.L.
>
> Jakub Vysoky napsal(a):
>
> omlouvam se, ale neodpustim si otazku, k cemu to chcete pouzit. exec
> urcite muze mit nekdy sva opodstatneni, proc jej pouzit, ale asi
> bychom se k nemu meli uchylovat jen v opravdu nejkrajnejsich
> oblastech.
>
> jde vam jen o to si neco vyzkouset, nebo toto skutecne chcete pouzit v
> nejakem produkcnim kodu? tam bych spis doporucil pouzit dictionary,
> jak zminovali kolegove prede mnou.
>
> abych jen nementoroval: pro vas konkretni pripad by jeste byla moznost
> modifikovat globals() [1], ale asi bych se na to koukal podobne jako
> na ten exec.
>
> [1]
> http://www.faqs.org/docs/diveintopython/dialect_locals.html#dialect.locals.readonly.example
>
> mejte se.
>
> 2010/12/21 "Ing. Vladislav Ludík" <[email protected]>:
>
>
> Funguje to skvěle:
>
> x = ['a','b','c','d','e','f']
> y = ['1','2','3','4','5','6']
>
> for element in zip(x,y):
>   exec ( '%s = %s' % element)
>
> print a, b, c, d, e, f
> 1 2 3 4 5 6
>
> print a + b + c + d + e + f
> 21
>
> V.L.
>
> Lansky, Milan napsal(a):
>
>
> exec(p1 + '=' + str(h1))
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf Of
> "Ing. Vladislav Ludík"
> Sent: Tuesday, December 21, 2010 12:45 AM
> To: Konference PyCZ
> Subject: [python] vytvoření proměnných
>
> Zdravím všechny,
>
> poradí někdo účinnou a jednoduchou metodu vytvoření spojení názvů
> proměnných s jejich hodnotami:
>
> x => {p1, p2, p3, ...pn}
> y => {h1, h2, h3, ...hn}
>
> kde p jsou proměnné a h jsou jejich hodnoty.
>
> Výsledkem by měly být deklarované proměnné s jejich hodnotami:
> p1 = h1
> p2 = h2
> p2 = h3
> .
> .
> pn = hn
>
>
> Díky, zdraví
>
> V.L.
> _______________________________________________
> Python mailing list
> [email protected]
> http://www.py.cz/mailman/listinfo/python
>
>
> This e-mail and any attachment is for authorised use by the intended
> recipient(s) only. It may contain proprietary material, confidential
> information and/or be subject to legal privilege. It should not be copied,
> disclosed to, retained or used by, any other party. If you are not an
> intended recipient then please promptly delete this e-mail and any
> attachment and all copies and inform the sender. Thank you.
>
>
> _______________________________________________
> Python mailing list
> [email protected]
> http://www.py.cz/mailman/listinfo/python
>
> __________ Informace od NOD32 5721 (20101221) __________
>
> Tato zprava byla proverena antivirovym systemem NOD32.
> http://www.nod32.cz
>
>
>
>
>
>
> _______________________________________________
> Python mailing list
> [email protected]
> http://www.py.cz/mailman/listinfo/python
>
>
>
>
>
> _______________________________________________
> Python mailing list
> [email protected]
> http://www.py.cz/mailman/listinfo/python
>



-- 
Jakub Vysoky

mob: +420 605 852 377
jab: [email protected]
icq: 109248375
twit: https://twitter.com/kvbik
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem