पायथन में वीएस यील्ड लौटें - एक लघु हास्य

May 05 2023
# क्यों 'उपज' आपके पायथन कोड को तेज बना सकता है
और यह समस्या और भी बदतर हो जाती है जितना अधिक डेटा से हम निपटते हैं। अगर लाइन में 1000 लोग हों तो क्या होगा? 'रिटर्न' कीवर्ड 'यील्ड' कीवर्ड रिटर्न कीवर्ड की तरह, यील्ड कीवर्ड फ़ंक्शन के आउटपुट को दर्शाता है।

और यह समस्या और भी बदतर हो जाती है जितना अधिक डेटा से हम निपटते हैं। अगर लाइन में 1000 लोग हों तो क्या होगा?

'वापसी' कीवर्ड

def add10(x):
  return x

x = add10(4)        # x = 14
def get_takoballs(orders):
  output = []
  for order in orders:
    output.append(f'{order} takoballs')
  return output

y = get_takoballs([4,6,8])
# y = ['4 takoballs', '6 takoballs', '8 takoballs']

'उपज' कीवर्ड

कीवर्ड की तरह return, yieldकीवर्ड फ़ंक्शन के आउटपुट को दर्शाता है।

हालाँकि, returnकीवर्ड के विपरीत, एक फ़ंक्शन yieldकई आउटपुट दे सकता है। कीवर्ड yieldचलने के बाद पूरे फ़ंक्शन को नहीं रोकता है।

def testfunction():
  yield 4
  yield 5
  yield 6

for n in testfunction():
  print(n)

# 4
# 5
# 6
def get_takoballs(orders):
  for order in orders:
    yield f'{order} takoballs'

for food in get_takoballs([4, 6, 8]):
  print(food)

# 4 takoballs
# 6 takoballs
# 8 takoballs

मान लीजिए कि हमारे टैको स्टैंड में 10000 ग्राहक हैं (सिर्फ 3 के बजाय)।

orders = # a list containing 10000 orders

def return_stall(orders):
  # process all 10000 orders first
  # then output all 10000 processed orders
  output = []
  for order in order:
    output.append(f'{order} takoballs')
  return output

def yield_stall(orders):
  # process 1 order, then output it
  # repeat til all 10000 orders are completed
  for order in orders:
    yield f'{order takoballs}'

फ़ंक्शन के लिए yield_stall, जैसे ही वे संसाधित होते हैं, प्रत्येक ऑर्डर (ग्राहक को दिया जाता है) दिया जाता है। पहले व्यक्ति को केवल उसके और केवल उसके आदेश के समाप्त होने की प्रतीक्षा करने की आवश्यकता है।

निष्कर्ष

यदि आप बड़ी मात्रा में डेटा के साथ काम कर रहे हैं, तो yieldचीजों को गति देने के लिए जनरेटर फ़ंक्शन (एक फ़ंक्शन जो उपयोग करता है) का उपयोग करने पर विचार करें। आशा है कि यह स्पष्ट और सहायक था!

कुछ अंतिम शब्द

यदि यह कहानी मूल्य प्रदान करती है और आप थोड़ा समर्थन दिखाना चाहते हैं, तो आप यह कर सकते हैं:

  1. इस कहानी के लिए 50 बार ताली बजाएं (यह वास्तव में, वास्तव में मेरी मदद करता है)
  2. मेरे लिंक का उपयोग करके मध्यम सदस्यता के लिए साइन अप करें ($5/माह असीमित माध्यम कहानियां पढ़ने के लिए)

लेवल अप कोडिंग

हमारे समुदाय का हिस्सा बनने के लिए धन्यवाद! इससे पहले कि तुम जाओ:

  • कहानी के लिए ताली बजाएं और लेखक को फॉलो करें
  • लेवल अप कोडिंग प्रकाशन में अधिक सामग्री देखें
  • फ्री कोडिंग इंटरव्यू कोर्स ⇒ कोर्स देखें
  • हमें फॉलो करें: ट्विटर | लिंक्डइन | समाचार पत्रिका