[python] Dynamicky vytvářené funkce

302302 302302 na centrum.cz
Pátek Červen 19 11:29:17 CEST 2009


Chtěl bych dynamicky vytvořit několik funkcí. Každá funkce bude obsahovat vnější proměnnou, kterou bych chtěl mít pro tu funkci fixovanou. 
Tedy např. 

>>> fce=[ ]

>>> for i in range(5):
>>> ... def temp( ):
>>> ... ... return i
>>>
>>> ... fce.append(temp)

>>> for f in fce:
>>> ... print f() 

v listu "fce" chci mít funkce, které by vracely čísla od 0 do 4. Ale všechny vrací jen číslo 4. (Předpokládám, že všechny vrací stejnou proměnnou i, která na konci nabývá hodnoty 4.)

požadovaný výstup:
0
1
2
3
4

to, co jsem dostal
4
4
4
4
4

Můžu nějak dynamicky docílit, aby každá dílčí funkce vracela novou proměnnou s definovanou hodnotou a ne jen ukazatel na proměnnou?

Czenek



Další informace o konferenci Python