क्या पुनरावृत्ति और 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, फिर जनरेटर और फिर बंद हो गया।
नोट: कृपया, मुझे पता है कि आप एक लूप का उपयोग करके ऐसा कर सकते हैं:
def infinity(start):
while True:
yield start
start += 1
मैं सिर्फ यह जानना चाहता हूं कि क्या यह पुनरावर्ती रूप से किया जा सकता है।