[python] for + eval()

Tomas Brabenec konference na brabenec.net
Čtvrtek Prosinec 22 13:19:25 CET 2005


Jo neco v tomto smyslu, to co jsem napsal je jen část toho co potřebuju.
Kazdopadne diky vsem za namety, myslim, ze ted uz to dam do kupy.

Diky

Tomas Brabenec
http://brabenec.net
 



Petr Prikryl napsal(a):
> Už to možná trochu chápu.
> Když to formuluji jinak, tak
> vlastně ani nevím, kdy a kolikrát
> se má provést to tělo cyklu.
> Bude to předepsáno zvenku, řetězcem.
>
> Zjednoduším případ s objects na řetězec,
> jedním objektem bude znak a do data
> se bude přidávat něco jiného.
>
> Natvrdo tedy můžu napsat a spustit (a.py)
> ----------------------------------
> objects = 'abcd'
> data = []              
>
> for x in xrange(1, 5):
>     for object in objects:
>         data.append((x, object))
>
> for d in data:
>     print d
> ----------------------------------
>
> Výsledek bude vypadat takto:
>
> (1, 'a')
> (1, 'b')
> (1, 'c')
> (1, 'd')
> (2, 'a')
> (2, 'b')
> (2, 'c')
> (2, 'd')
> (3, 'a')
> (3, 'b')
> (3, 'c')
> (3, 'd')
> (4, 'a')
> (4, 'b')
> (4, 'c')
> (4, 'd')
>
> Druhé řešení spočívá v tom, že tělo
> cyklu nadefinuji do podoby funkce.
> Příkazem exec pak provedu nějaký 
> zkonstruovaný příkaz, ve kterém se 
> bude vyskytovat volání této funkce:
>
> (a2.py)
> ----------------------------------
> objects = 'abcd'
> data = []              
>
> def f(objects):
>     for object in objects:
>         data.append((x, object))
>
> sss = 'x in xrange(1, 5)'
> exec ("for %s: f(objects)" % sss)
>
> for d in data:
>     print d
> ----------------------------------
>
> Výsledek je stejný, jako v předchozím 
> případě.
>
> pepr
>
>   
>> Mělo by to vypadat napr. takhle:
>>
>> data = []              
>> for x in range (1,5):
>>    for sub_object in object.kids:
>>        data.append(parsetag(self,sub_object))
>>
>> Je to jen vytazek z kodu.
>>     
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>
>   



Další informace o konferenci Python