Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन यील्ड कीवर्ड:एक गाइड

पायथन यील्ड कीवर्ड का उपयोग कैसे करें

पायथन में जेनरेटर सबसे सहज अवधारणा नहीं हैं। मामले को बदतर बनाने के लिए, वे "यील्ड" नामक एक विशेष कीवर्ड का उपयोग करते हैं, भले ही जनरेटर स्वयं कार्य कर रहे हों। उपज कीवर्ड क्या है? यह रिटर्न स्टेटमेंट की तुलना कैसे करता है?

वे अच्छे प्रश्न हैं। इस गाइड में, हम बात करते हैं कि यील्ड स्टेटमेंट क्या है और आप इसे अपने कोड में कैसे इस्तेमाल कर सकते हैं। हम कार्रवाई में उपज कीवर्ड के एक उदाहरण के माध्यम से चलते हैं। आएँ शुरू करें!

हम अनुशंसा करते हैं कि जारी रखने से पहले हमारे लेख पायथन इटरेटर और जनरेटर पर पढ़ें। यह आपको कुछ उपयोगी संदर्भ देता है जिसका उपयोग आप उपज कीवर्ड की अपनी समझ को आगे बढ़ाने के लिए कर सकते हैं।

बुनियादी बातों पर वापस जाएं:इटरेटर और जेनरेटर

सूचियों को चलने योग्य वस्तुओं के रूप में वर्णित किया गया है। ऐसा इसलिए है क्योंकि आप "फॉर" लूप का उपयोग करके उनकी सामग्री देख सकते हैं। हर बार जब लूप निष्पादित होता है, तो सूची में एक आइटम को पायथन द्वारा एक्सेस किया जाता है। शब्दकोश, टुपल्स और तार भी चलने योग्य वस्तुएं हैं।

एक फ़ंक्शन जो किसी आइटम को पुनरावृत्तीय वस्तु से एक्सेस करता है उसे इटरेटर . कहा जाता है . आइए एक सूची बनाएं और उस पर लूप के लिए पुनरावृति करें:

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 फ़ंक्शन सौंपा गया है, एक जनरेटर है।

निष्कर्ष

उपज कीवर्ड जनरेटर के अंदर एक मान देता है। एक जनरेटर एक विशेष प्रकार का पुनरावर्तक है जिसका मान केवल एक बार ही पुनरावृत्त किया जा सकता है। यील्ड कीवर्ड रिटर्न स्टेटमेंट के समान है, सिवाय रिटर्न स्टेटमेंट के जेनरेटर में इस्तेमाल नहीं किया जा सकता है।

अब आप पाइथोनिस्टा की तरह उपज कीवर्ड का उपयोग करने के लिए तैयार हैं!


  1. पायथन में वैश्विक कीवर्ड

    एक पायथन कार्यक्रम में विभिन्न चरों का अलग-अलग दायरा होता है। यह कहां घोषित किया गया है, इस पर निर्भर करते हुए, चर किसी फ़ंक्शन के अंदर पहुंच योग्य हो भी सकता है और नहीं भी। कभी-कभी हमें एक वेरिएबल को संशोधित करने की आवश्यकता होगी जो किसी फ़ंक्शन के अंदर उसके वर्तमान दायरे से बाहर मौजूद है। ऐसे में

  1. पायथन में कीवर्ड

    अन्य भाषाओं की तरह, पायथन में भी कुछ आरक्षित शब्द हैं। ये शब्द कुछ विशेष अर्थ रखते हैं। कभी-कभी यह एक कमांड, या एक पैरामीटर आदि हो सकता है। हम कीवर्ड का उपयोग चर नामों के रूप में नहीं कर सकते हैं। पायथन कीवर्ड हैं सच गलत वर्ग डीईएफ़ वापसी अगर एलिफ़ अन्य कोशिश करें को छोड़कर उठाएं आखिरकार के लिए

  1. पायथन में "यील्ड" कीवर्ड क्या करता है?

    उपज कीवर्ड का उपयोग जनरेटर में किया जाता है। इसके व्यवहार को समझने के लिए आइए पहले देखें कि पुनरावर्तनीय क्या हैं। पायथन वस्तुओं की सूची, फ़ाइल, स्ट्रिंग आदि को पुनरावर्तनीय कहा जाता है। कोई भी वस्तु जिसे वाक्य रचना में for .. का उपयोग करके ट्रेस किया जा सकता है, चलने योग्य है। इटरेटर ऑब्जेक्ट भी एक