[python] Generátory

Jan Janech devel na atlas.sk
Středa Srpen 20 10:39:12 CEST 2008


Dobry den,

zakazdym ked zavolate generatorovu metodu, tak sa generator inicializuje 
nanovo. Takze:

def generatorCisel():
     yield 1
     yield 2
     yield 3

Spravi:

 >>> generatorCisel().next()
1
 >>> generatorCisel().next()
1

Ale:

 >>> tmp = generatorCisel()
 >>> tmp.next()
1
 >>> tmp.next()
2
 >>> tmp.next()
3

Calis.martin na seznam.cz wrote:
> Dobrý den, nedávno jsem se rozhodl použít z jistých důvodu generátory. Každopádně pokud mam script:
> 
> --------------------------------------------------------------------------------------
> class Trida:
> ...def __init__(self):
> ......self.seznam = []
> 
> ...def metoda(self, jedna, dve):
> ......for promnena in self.seznam[jedna][dve]:
> .........yield promnena
> 
> ...def metoda2(self, jedna, dve):
> ......print self.seznam[jedna][dve]
> 
> priklad = Trida()
> 
>>>> print priklad.metoda(1,1)
> <generator object at 0x00B550D0>
>>>> print priklad.metoda(1,1).next()
> ['...', 'Vykuchejte blbou rybu!']
>>>> print priklad.metoda(1,1).next()
> ['...', 'Vykuchejte blbou rybu!']###nevite proc mi to znovu vytisklo predchozi vysledek?
>>>> priklad.metoda2(1,1)
> [['...', 'Vykuchejte blbou rybu!'], ['...', '...']]
> None
> ---------------------------------------------------------------------------------------
> 
> Nevíte proč nefunguje next() tak jak má?
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
> 
> 
> 


-- 

____________________________
Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita


Další informace o konferenci Python