yield verhält sich merkwürdig.
Verfasst: Dienstag 5. Juli 2016, 22:31
[codebox=text file=Unbenannt.txt]Ich habe eine Frage zu yield. Was macht diese Anweisung ? Wenn ich folgendes tippe:
def quadrieren():
variable = 1
while True:
yield variable * variable
variable += 1
print quadrieren().next()
print quadrieren().next()
print quadrieren().next()
AUSGABE:
>>>
1
1
1
Wenn ich stattdessen tippe:
a = quadrieren()
print a.next()
print a.next()
print a.next()
AUSGABE:
>>>
1
4
9
Wieso kommt es zu so unterschiedlichen AUSGABEN ?
Es müßte doch egal bzw. das Gleiche bedeuten ob ich nun gleich
print quadrieren().next()
schreibe oder erst
a = quadrieren()
und dann
print a.next()
DAS verstehe ich nicht !
[/code]
def quadrieren():
variable = 1
while True:
yield variable * variable
variable += 1
print quadrieren().next()
print quadrieren().next()
print quadrieren().next()
AUSGABE:
>>>
1
1
1
Wenn ich stattdessen tippe:
a = quadrieren()
print a.next()
print a.next()
print a.next()
AUSGABE:
>>>
1
4
9
Wieso kommt es zu so unterschiedlichen AUSGABEN ?
Es müßte doch egal bzw. das Gleiche bedeuten ob ich nun gleich
print quadrieren().next()
schreibe oder erst
a = quadrieren()
und dann
print a.next()
DAS verstehe ich nicht !
[/code]