yield und Summe zurückgeben

15/04/2010 - 16:44 von Thomas Guettler | Report spam
Hallo,

wie kann man in einem "simple generator (yield)" Daten
sammeln, die dann am Ende vom Aufrufer ausgewertet werden können?

Hier ein einfaches Beispiel:

def count():
sum=0
for i in xrange(10):
sum+=i
yield i

counter=count()
for i in counter:
print i
counter.sum # <- Geht natürlich nicht

Mit einer Klasse, die next() implementiert würde es gehen. Geht es
aber auch mit yield?

Thomas


Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
 

Lesen sie die antworten

#1 Florian Diesch
15/04/2010 - 18:19 | Warnen spam
Thomas Guettler writes:

Hallo,

wie kann man in einem "simple generator (yield)" Daten
sammeln, die dann am Ende vom Aufrufer ausgewertet werden können?

Hier ein einfaches Beispiel:

def count():
sum=0
for i in xrange(10):
sum+=i
yield i

counter=count()
for i in counter:
print i
counter.sum # <- Geht natürlich nicht

Mit einer Klasse, die next() implementiert würde es gehen. Geht es
aber auch mit yield?



Sowas geht:

def count():
count.sum=0
for i in xrange(10):
count.sum+=i
yield i

counter=count()
for i in counter:
print i
print count.sum



Florian
Simple dict-like Python API for GConf:
<http://www.florian-diesch.de/softwa...gconf/>

Ähnliche fragen