उन्नत पायथन विकास पाठ्यक्रम
अध्याय
>
स्तर
उन्नत फ़ंक्शंस
लैम्ब्डा फ़ंक्शंस
उद्देश्य
बाद में शिपमेंट के लिए संग्रह करने के लिए कुछ उपभोग्य वस्तुओं का दस्तावेजीकरण करने के लिए लैम्ब्डा फंक्शंस का उपयोग करें।
फील्ड में कुछ फल और बेरीज लगभग तोड़ने के लिए तैयार हैं ताकि उन्हें संग्रहीत, शिप और बेचा जा सके। तैयार होने वाली वस्तुओं की सूची बनाना एक अच्छा विचार होगा ताकि आपको यह अनुमान हो सके कि इस फील्ड से कितने उत्पाद पैक और शिप किए जा रहे हैं।
अपने कोड के अनुकूलन के लिए, आप lambda functions का उपयोग कर सकते हैं, यह कस्टम फंक्शंस बनाने का एक अन्य तरीका है, लेकिन जब आपके द्वारा बनाए जा रहे फंक्शंस सरल होते हैं तो यह तेज़ होता है।
# Normal Custom Function
def calculate(x , y , z) :
return( (x+y+z) *2 )
# Lambda Function
calculate = lambda x,y,z : (x + y + z) * 2
उपरोक्त उदाहरण में आपके पास दो फंक्शंस हैं, एक कस्टम फंक्शन और एक lambda function। भले ही इन्हें अलग तरह से लिखा गया हो, कार्यक्षमता में ये समान हैं, lambda function का उपयोग करना बस आसान है और कोड के मध्य में तुरंत सेटअप किया जा सकता है। यह कहते हुए, सामान्य तरीके से फंक्शंस को परिभाषित करना जटिल कोड अनुक्रमों के लिए अभी भी बहुत उपयोगी है।
फील्ड में दो (2) प्रकार की वस्तुएँ होती हैं: "fruits" और "berries"। इन दोनों (2) प्रकारों में से, तीन (3) फल होते हैं: apples, pears और oranges; और तीन (3) बेरीज होती हैं: red, blue और purple।
सबसे पहले उपरोक्त दिखाए गए lambda function को calculate नाम से सेट करें, इससे हमें तीन वस्तुओं को जोड़कर और उन्हें दो (2) से गुणा करके सीजन के लिए अनुमानित आइटम्स की संख्या प्राप्त करने में मदद मिलेगी। एक और lambda function बनाएं जिसका नाम estimate हो, ताकि एक कस्टम speak function के रूप में एकत्र किए जाने वाले आइटम्स का अनुमान लगाया जा सके। अंत में, एक lambda function सेट करें जिसका नाम total हो, जो दो मानों को जोड़ता है और तीसरे मान जिसे loss कहा गया है, उसे घटा देता है।
# Calculate items calculate = lambda x,y,z : (x + y + z) * 2 # Estimate items estimate = lambda number , name : player.speak( "I estimate %d %s this season" % (number,name) ) # Total all items total = lambda num1, num2, loss : ( (num1 + num2) - loss)
तीन (3) फलों में से प्रत्येक के लिए वेरिएबल बनाएं, और फील्ड में प्रत्येक की गिनती जोड़ें। डार्क X मार्क की ओर जाएं और सभी तीन फल वेरिएबल्स के साथ lambda function calculate() का उपयोग करें, और परिणाम को एक कस्टम वेरिएबल fruit_number में स्टोर करें, इस प्रकार: fruit_number = calculate(orange,pear,apple)। इसके बाद, estimate() lambda function का उपयोग करते हुए fruit_number को संख्या के रूप में और "fruits" को नाम के रूप में पास करें, इस प्रकार: estimate(fruit_number, "fruits" )।
जब आप फल के साथ कार्य पूरा कर लें, तो लाइट X मार्क की ओर जाएं और बेरीज के साथ वही प्रक्रिया अपनाएं। फील्ड में गिनती की गई झाड़ियों की मात्रा के साथ तीन (3) बेरीज के लिए वेरिएबल सेट करें, फिर फल के समान ही lambda function सेट करें, इस प्रकार: berry_number = calculate(red,blue,purple)। berry_number और "berries" को आर्गुमेंट्स के रूप में पास करते हुए estimate lambda function का उपयोग करें।
एक कोंस्टैंट है doc जिसका उपयोग पिछले महीने के खोए हुए उत्पादों के अनुमान के लिए किया गया है। स्टोरहाउस की ओर बढ़ें, गोल्ड X मार्क की तरफ चलें और टेबल पर रखे दस्तावेज़ को पढ़ने के लिए speak() फंक्शन का उपयोग करें ताकि आप पिछले महीने की संख्याएँ जान सकें।
जब आपको पिछले महीने की संख्याएँ पता चल जाएँ, तो पर्पल कालीन पर स्थित डार्क X मार्क की ओर जाएं, टेबल का सामना करें ताकि आप इस महीने के कुल का निर्धारण कर सकें। सत्र के कुल का हिसाब लगाने के लिए season नाम का वेरिएबल बनाएं, fruit_number और berry_number को संख्या के रूप में उपयोग करें, और doc से प्राप्त संख्या को loss के रूप में उपयोग करें, इस प्रकार: season = total(berry_number,fruit_number, number found in doc constant)
इसके बाद, estimate() lambda function का उपयोग करते हुए season वेरिएबल को संख्या आर्गुमेंट और "products" को नाम आर्गुमेंट के रूप में पास करें ताकि स्तर पूरा किया जा सके।