Also mache ich einen Generator aus einer Liste, möchte aber als nächstes darauf zurückgreifen, der nur das nächste Element in der Liste zurückgeben soll, aber es gibt das gleiche Objekt zurück, dh das ganze Stück Code wird erneut ausgeführt, anstatt nur den Yield-Teil zurückzugeben. Das folgende Beispiel zeigt das erwartete Verhalten, wenn Sie durch die Liste Looping, aber dann die nächsten Renditen 1 zweimal, während ich den zweiten Aufruf des nächsten möchte zurückkehren 2.Fragen zum "yield from" und "next" Verhalten
class demo:
@property
def mygen(self):
a = [1,2,3,4,5]
b = [6,7,8,9,10]
yield from a
yield from b
if __name__=='__main__':
demo1 = demo()
print([_ for _ in demo1.mygen])
demo2 = demo()
print(next(demo2.mygen))
print(next(demo2.mygen))
Es gibt einen Grund, warum ich eine Liste am Drehen in ein Generator, wie es die Antwort von einem API-Aufruf ist und möchte das nächste Element in der Liste dynamisch zurückgeben und den API-Aufruf ausführen, wenn es an das Ende der Liste kommt.
Deshalb sollte es keine Eigenschaft sein, denn wenn es eine Funktion ist, lässt es dich denken, was es macht. – warvariuc
@warvariuc Absolut, editiert meine Antwort, um dies zu zeigen. – schwobaseggl