Özyineleme ile yield
ifadeyi karıştırmanın bir yolu var mı ? Örneğin, sonsuz sayı üreteci (özyineleme kullanarak) şöyle bir şey olabilir:
def infinity(start):
yield start
# recursion here ...
>>> it = infinity(1)
>>> next(it)
1
>>> next(it)
2
Denedim:
def infinity(start):
yield start
infinity(start + 1)
ve
def infinity(start):
yield start
yield infinity(start + 1)
Ama hiçbiri istediğimi yapmadı, ilki geldikten sonra durdu start
ve ikincisi geri döndü start
, sonra jeneratör ve sonra durdu.
NOT: Lütfen bunu bir süre döngüsü kullanarak yapabileceğinizi biliyorum:
def infinity(start):
while True:
yield start
start += 1
Bunun yinelemeli yapılıp yapılamayacağını bilmek istiyorum.