Biliyorum, basit bir şey eksik olmalıyım, ama göremiyorum.Jeneratör İfadesi vs verim: Neden 'next()' çalışmıyor?
Böyle bir jeneratör ifadesini varsa:
>>> serializer=(sn for sn in xrange(0,sys.maxint))
kolayca üretebilirsiniz, Bu gibi ayrı ayrı tamsayılar:
>>> serializer.next()
0
>>> serializer.next()
1
>>> serializer.next()
2
Böyle bir jeneratör yazarsanız:
>>> def ser():
... for sn in xrange(0,100000):
... yield sn
Bueno değildir:
>>> ser().next()
0
>>> ser().next()
0
>>> ser().next()
0
??? Neyi kaçırıyorum ???
Thx! Basit olması gerektiğini biliyordum ... – dawg
sorun değil. kesinlikle belirgin değildir, çünkü bunu yapan diğer ana işlevler (dekoratörler) içlerinde açık bir 'dönüş sarıcısı' bulundurmaktadırlar, ki bu sanırım "verim" ifadesiyle örtülü/büyülü bir şekilde yaratılmıştır. –