पायथन यील्ड कीवर्ड का उपयोग कैसे करें
पायथन में जेनरेटर सबसे सहज अवधारणा नहीं हैं। मामले को बदतर बनाने के लिए, वे "यील्ड" नामक एक विशेष कीवर्ड का उपयोग करते हैं, भले ही जनरेटर स्वयं कार्य कर रहे हों। उपज कीवर्ड क्या है? यह रिटर्न स्टेटमेंट की तुलना कैसे करता है?
वे अच्छे प्रश्न हैं। इस गाइड में, हम बात करते हैं कि यील्ड स्टेटमेंट क्या है और आप इसे अपने कोड में कैसे इस्तेमाल कर सकते हैं। हम कार्रवाई में उपज कीवर्ड के एक उदाहरण के माध्यम से चलते हैं। आएँ शुरू करें!
हम अनुशंसा करते हैं कि जारी रखने से पहले हमारे लेख पायथन इटरेटर और जनरेटर पर पढ़ें। यह आपको कुछ उपयोगी संदर्भ देता है जिसका उपयोग आप उपज कीवर्ड की अपनी समझ को आगे बढ़ाने के लिए कर सकते हैं।
बुनियादी बातों पर वापस जाएं:इटरेटर और जेनरेटर
सूचियों को चलने योग्य वस्तुओं के रूप में वर्णित किया गया है। ऐसा इसलिए है क्योंकि आप "फॉर" लूप का उपयोग करके उनकी सामग्री देख सकते हैं। हर बार जब लूप निष्पादित होता है, तो सूची में एक आइटम को पायथन द्वारा एक्सेस किया जाता है। शब्दकोश, टुपल्स और तार भी चलने योग्य वस्तुएं हैं।
एक फ़ंक्शन जो किसी आइटम को पुनरावृत्तीय वस्तु से एक्सेस करता है उसे इटरेटर . कहा जाता है . आइए एक सूची बनाएं और उस पर लूप के लिए पुनरावृति करें:
peppers = ["Scotch Bonnet", "Piri Piri", "Cayenne"] for p in peppers: print(p) for p in peppers: print(p)
यह कोड "काली मिर्च" सूची में सभी मिर्च को कंसोल पर प्रिंट करता है:
Scotch Bonnet Piri Piri Cayenne Scotch Bonnet Piri Piri Cayenne
हम जितनी बार चाहें अपने इटरेटर का उपयोग करते हैं। पिछले उदाहरण में, हमने "मिर्च" ऑब्जेक्ट पर दो बार पुनरावृति की।
पायथन जनरेटर किसी वस्तु को दोहराने के लिए उपयोग किए जाने वाले पुनरावर्तक की तरह होते हैं। एक बड़ा अंतर है:आप केवल एक बार जनरेटर पर पुनरावृति कर सकते हैं। जबकि हम जितनी बार चाहें "काली मिर्च" पर पुनरावृति कर सकते हैं, एक जनरेटर केवल एक बार ही पहुँचा जा सकता है।
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
आइए मिर्च की हमारी सूची के लिए एक जनरेटर को परिभाषित करें:
def print_peppers(peppers): for p in peppers: yield p peppers = ["Scotch Bonnet", "Piri Piri", "Cayenne"] pepper_generator = print_peppers(peppers) for p in pepper_generator: print(p)
हम print_peppers()
. नामक एक फ़ंक्शन को परिभाषित करते हैं . यह हमारा जनरेटर फंक्शन है। यह एक तर्क को स्वीकार करता है:मिर्च की एक सूची जिसे हम कंसोल पर प्रिंट करना चाहते हैं।
हमारे मुख्य कार्यक्रम में, हम print_peppers()
. को कॉल करते हैं फ़ंक्शन करें और इसे वेरिएबल Pepper_generator को असाइन करें। अगला, हम "फॉर" लूप का उपयोग करके जनरेटर पर पुनरावृति करते हैं। हमारा लूप के लिए जनरेटर ऑब्जेक्ट को कॉल करता है और उस पर पुनरावृति करता है।
चलिए अपना कोड चलाते हैं:
Scotch Bonnet Piri Piri Cayenne
आउटपुट हमारे पहले उदाहरण के समान है। अंतर यह है कि हम केवल एक बार अपनी सूची में पुनरावृति कर सकते हैं। आइए फिर से अपने जनरेटर पर पुनरावृति करने का प्रयास करें:
... for p in pepper_generator: print(p) for p in pepper_generator: print(p)
हमारा कोड लौटाता है:
Scotch Bonnet Piri Piri Cayenne
हमने एक बार अपने जनरेटर पर पुनरावृति कर ली है। हम इसे फिर से नहीं कर सकते। इसलिए हमारा दूसरा लूप के लिए कोई मान नहीं लौटाता है।
पायथन यील्ड कीवर्ड
अंतिम उदाहरण में "उपज" शब्द पर ध्यान दें। यह रहा एक रिमाइंडर:
def print_peppers(peppers): for p in peppers: yield p
हमारे फ़ंक्शन के अंदर "उपज" कीवर्ड दिखाई देता है। यह जनरेटर फ़ंक्शन में एक मान देता है। यह "वापसी" कीवर्ड के समान है।
जब आप एक जनरेटर बनाना चाहते हैं, जिस पर आप पुनरावृति कर सकते हैं, तो उपज का उपयोग करें। हमारे पिछले उदाहरण में, हम मिर्च की हमारी सूची के लिए जनरेटर बनाने के लिए उपज का उपयोग करते हैं।
उपज वाला कोई भी फ़ंक्शन जेनरेटर लौटाएगा। हम इसे type()
. का उपयोग करके Pepper_generator चर के प्रकार की जाँच करके देखते हैं विधि:
<class 'generator'>
यह हमें बताता है कि Pepper_generator, जिसे print_peppers फ़ंक्शन सौंपा गया है, एक जनरेटर है।
निष्कर्ष
उपज कीवर्ड जनरेटर के अंदर एक मान देता है। एक जनरेटर एक विशेष प्रकार का पुनरावर्तक है जिसका मान केवल एक बार ही पुनरावृत्त किया जा सकता है। यील्ड कीवर्ड रिटर्न स्टेटमेंट के समान है, सिवाय रिटर्न स्टेटमेंट के जेनरेटर में इस्तेमाल नहीं किया जा सकता है।
अब आप पाइथोनिस्टा की तरह उपज कीवर्ड का उपयोग करने के लिए तैयार हैं!