[python] for + eval()

Tomas Brabenec konference na brabenec.net
Čtvrtek Prosinec 22 12:14:25 CET 2005


Potřebuji dosáhnout toho, že chci provádět příkaz for, ale nevím na čem 
cyklus bude závislý.

Může to být

for x in range(1,5)
for x > y:
for x in ["a","b"]
...

Je to uz pochopitelnejsi ?

TB


Petr Prikryl napsal(a):
> Taky mi to připadá divné. 
> Proč se má ten eval vůbec používat?
> Pokud z nějakého důvodu ano, proč je v něm 
> "for %s:"? Je to jakoby začátek příkazu cyklu, 
> kterému se musí správně dosadit "x in cont",
> ale chybí tomu tělo cyklu. Pokud se nemýlím, 
> eval() vyžaduje zadání výrazu a ne příkazu.
> Možná by pomohlo místo příkazu for použít generátor
> seznamu (list comprehension). eval() může dostat
> kontext v podobě dalších parametrů globals
> a locals. Každopádně to chce mít jasno v tom,
> čeho se má dosáhnout.
>
> 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.
>>
>> -- 
>> Tomas Brabenec
>> http://brabenec.net
>>
>> Jaroslav Pachola napsal(a):
>>     
>>> No ja nevim, mohl bys prosim napsat 
>>> bez evalu priklad toho cyklu, jak 
>>> by to v praxi melo vypadat? Mne to 
>>> prijde nejake divne.
>>>       
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>
>   

-- 
Tomas Brabenec
http://brabenec.net
 




Další informace o konferenci Python