क्या एक सीधे-सीधे जनरेटर की अभिव्यक्ति है जो अनंत तत्वों का उत्पादन कर सकती है?
यह विशुद्ध सैद्धांतिक सवाल है। यहां "व्यावहारिक" उत्तर की आवश्यकता नहीं है :)
उदाहरण के लिए, एक परिमित जनरेटर बनाना आसान है:
my_gen = (0 for i in xrange(42))
हालाँकि, एक अनंत बनाने के लिए मुझे एक फर्जी कार्य के साथ अपने नाम स्थान को "प्रदूषित" करने की आवश्यकता है:
def _my_gen():
while True:
yield 0
my_gen = _my_gen()
एक अलग फ़ाइल में बातें करना और- import
बाद में गिनती नहीं है।
मुझे यह भी पता है कि itertools.repeat
ठीक यही करता है। मैं उत्सुक हूँ अगर वहाँ बिना एक लाइनर समाधान है।
del _my_gen
यदि आप दो को भ्रमित नहीं करना चाहते हैं तो भी इस्तेमाल कर सकते हैं
my_gen
और फिर करेंmy_gen = my_gen()
।