क्या पुनरावृत्ति और 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
मैं सिर्फ यह जानना चाहता हूं कि क्या यह पुनरावर्ती रूप से किया जा सकता है।