मैं रूबी और पायथन जनरेटर (रूबी में Enumerators
के रूप में जाना जाता है) के बीच समानता/अंतर का शोध कर रहा हूं, और जहां तक मैं कह सकता हूं कि वे काफी समकक्ष हैं।रुबी जेनरेटर बनाम पायथन जनरेटर
हालांकि एक अंतर मैंने देखा है कि पायथन जेनरेटर close()
विधि का समर्थन करते हैं जबकि रूबी जेनरेटर नहीं करते हैं। अजगर डॉक्स से close()
पद्धति का अनुसरण करने के लिए कहा गया है:
बिंदु है जहां जनरेटर समारोह रोक दिया गया था पर एक GeneratorExit बढ़ा। जनरेटर समारोह तो StopIteration को जन्म देती है तो (सामान्य रूप से निकल कर, या पहले से ही बंद किया जा रहा के कारण) या GeneratorExit, अपने फोन करने वाले के पास रिटर्न (अपवाद को पकड़ने नहीं द्वारा)। "
वहाँ एक अच्छा कारण है कि रूबी Enumerators
है close()
विधि का समर्थन नहीं करते? या यह एक आकस्मिक चूक है?
मैं यह भी पता चला है कि रूबी Enumerators
समर्थन एक rewind()
विधि अभी तक अजगर जनरेटर नहीं है ... वहाँ यह भी?
लिए एक कारण है धन्यवाद
उत्सुक, लेकिन मुझे समझ में नहीं आता कि आप इसका उपयोग कैसे करेंगे: क्या आप एक उदाहरण दे सकते हैं? –
@ एंड्रयू विट: इसका उपयोग संसाधनों के लिए किया जा सकता है - डाटाबेस कनेक्शन, फाइल इत्यादि- जनरेटर द्वारा साफ किए जाने के लिए आयोजित किया जाता है।यह कोड के अन्य हिस्सों से अपने 'अगली' या 'प्रेषण' विधियों को और भी कॉल को रोक देगा। उदाहरण के लिए, आप 'करीबी' को कॉल कर सकते हैं, उदाहरण के लिए, कई उपभोक्ताओं में से किसी एक को इंगित करने के लिए कि वांछित मूल्य पाया गया है। – intuited
@intuited, क्या पाइथन का 'करीबी() वास्तव में आमतौर पर उपयोग किया जाता है? मुझे लगता है कि मैंने कहीं पढ़ा है कि इसे पायथन समुदाय द्वारा 'आर्केन' माना जाता है और वास्तव में इसका उपयोग नहीं किया जाता है। – horseyguy