재귀와 yield
문 을 혼합하는 방법이 있습니까? 예를 들어 무한 수 생성기 (재귀 사용)는 다음과 같습니다.
def infinity(start):
yield start
# recursion here ...
>>> it = infinity(1)
>>> next(it)
1
>>> next(it)
2
나는 시도했다 :
def infinity(start):
yield start
infinity(start + 1)
과
def infinity(start):
yield start
yield infinity(start + 1)
그러나 그들 중 누구도 내가 원하는 것을하지 않았습니다. 첫 번째는 항복 start
하고 두 번째는 항복 start
한 다음 발전기를 멈췄습니다.
참고 : while 루프를 사용하여이 작업을 수행 할 수 있다는 것을 알고 있습니다.
def infinity(start):
while True:
yield start
start += 1
나는 이것이 재귀 적으로 수행 될 수 있는지 알고 싶습니다.