अभ्यास में, पायथन 3.3 में "उपज से" सिंटैक्स का लाभ उठाना
पायथन 3.3 में पेश किया गया "उपज से" सिंटैक्स प्रदान करता है जनरेटर और कोरआउटिन की क्षमताओं में महत्वपूर्ण वृद्धि। यह एक कॉलर और एक उप-जनरेटर के बीच एक द्विदिशात्मक कनेक्शन स्थापित करता है, जो दोनों दिशाओं में निर्बाध संचार को सक्षम बनाता है। जेनरेटर से डेटा:
यह उपयोग मामला फॉर लूप की कार्यक्षमता की नकल करता है, लेकिन अपवादों के प्रचार-प्रसार की अतिरिक्त सुविधा के साथ। उदाहरण के लिए:
def रीडर(): रेंज में i के लिए(4): उपज '
def reader():
for i in range(4):
yield '<< %s' % i
def reader_wrapper(g):
yield from g
wrap = reader_wrapper(reader())
for i in wrap:
print(i)
# Result:
# << 0
# << 1
# << 2
# << 3
def Writer(): जबकि सत्य: डब्ल्यू = (उपज) प्रिंट('>>', w) डीईएफ़ लेखक_रैपर(कोरो): कोरो से उपज डब्ल्यू = लेखक() रैप = राइटर_रैपर(डब्ल्यू) रैप.सेंड(कोई नहीं) # कोरआउटिन को प्राइम करें रेंज में i के लिए(4): रैप.भेजें(i) # अपेक्षित परिणाम: # >> 0 # >> 1 # >> 2 # >> 3
सिंटैक्स से प्राप्त उपज माइक्रो-थ्रेड्स के साथ कुछ समानताएं साझा करती है जिसमें यह कोरटाइन को निलंबित करने और फिर से शुरू करने की अनुमति देता है, जिससे एक हल्का विकल्प बनता है पारंपरिक धागे. हालाँकि, माइक्रो-थ्रेड्स की तुलना में कॉरआउटिन अधिक हल्के होते हैं और इनमें मेमोरी ओवरहेड कम होती है। वे बहु-थ्रेडेड वातावरण में संदर्भ स्विचिंग से जुड़े मुद्दों से बचते हुए, एक ही थ्रेड पर भी चलते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3