उन्नत पायथन विकास पाठ्यक्रम
अध्याय
>
स्तर
उन्नत फ़ंक्शंस
आंशिक फलन
उद्देश्य
आंशिक कार्यों का उपयोग करके डॉक पर भेजी गई निर्माण सामग्री को पैक और प्लेस करें।
कुछ सामग्री अभी-अभी एक डॉक पर पहुंचाई गई थी, इन्हें पैक करके स्टोर करना चाहिए ताकि इन्हें निर्माण सामग्री के रूप में उपयोग किया जा सके। इन सामग्रियों को कपड़े में लिपटाना और धागे से बांधना आवश्यक है। इन्हें पैक करते समय सभी आइटम का वजन मापना महत्वपूर्ण है ताकि बाद में इन्हें प्रभावी ढंग से परिवहन किया जा सके। इसे सरल बनाने के लिए हम इस प्रक्रिया को Partial Functions का उपयोग करके अनुकूलित कर सकते हैं।
A Partial Function एक कस्टम फ़ंक्शन है जिसे संक्षिप्त किया गया है क्योंकि इसमें स्थिर तर्क मानों को बार-बार जोड़ने की आवश्यकता नहीं होती। इससे आप ऐसे फ़ंक्शनों का उपयोग कर सकते हैं जो कई तर्क लेते हैं और उन्हें केवल एक तर्क के साथ या आपके चुने हुए किसी भी संख्या के साथ निष्पादित कर सकते हैं।
from functools import partial
शुरू करने के लिए आपको functools नामक मॉड्यूल से partial को इम्पोर्ट करना होगा, इससे आप Partial Functions बना सकेंगे। कोड इम्पोर्ट करना हमेशा कोड एडिटर के शीर्ष पर होता है।
एक फ़ंक्शन weight बनाएं और इसे तीन (3) तर्क लेने दें: thread, cloth और material। यह फ़ंक्शन आपको पैक की गई सामग्रियों का वजन मापने में सक्षम करेगा, हम इस प्रक्रिया को और अनुकूलित करने के लिए इसे एक आंशिक फ़ंक्शन के माध्यम से संकुचित कर सकते हैं।
def weight(thread, cloth, material):
return 2 * thread + 5 * cloth + material * 10
package = partial(weight, 4, 2)
एक Partial Function package नाम का बनाएं, इसे lambda फ़ंक्शनों की तरह ही सेटअप किया गया है। partial() का उपयोग करके फ़ंक्शन को भरें और फ़ंक्शन का नाम तथा उन तर्कों के लिए निश्चित मान जोड़ें जिन्हें आप निर्दिष्ट करना चाहते हैं।
मूल फ़ंक्शन से कोई भी तर्क जिसे आप निर्दिष्ट नहीं करते, वह ऐसे तर्क बन जाएंगे जिन्हें Partial Function द्वारा निर्दिष्ट करना अनिवार्य होगा। package() Partial Function के मामले में, यह material तर्क है।
क्रेट्स के सामने गहरे X निशानों तक जाएं ताकि पैकिंग सामग्री निकाल सकें। पीले कालीन के X निशान पर, collect() फ़ंक्शन का उपयोग करके "thread" प्राप्त करें और बैंगनी कालीन के X निशान पर जाएं और collect() फ़ंक्शन का उपयोग करके "cloth" प्राप्त करें। ये आइटम सामग्री पैक करने के लिए उपयोग किए जाएंगे।
डॉक के पार जाएं और सभी निर्माण सामग्री एकत्र करें, ये हैं: bricks, planks, red_bricks और wood। एक बार इन्हें एकत्र करने के बाद, प्रत्येक के लिए एक वैरिएबल में संख्यात्मक मान जोड़ें जिसका नाम उस सामग्री के नाम के समान हो, उदाहरण के लिए: bricks = 3।
इसके बाद, क्रेट्स के सामने हल्के X निशानों तक जाएं और सामग्री को रखने से पहले प्रत्येक निर्माण सामग्री का वजन मापें। वजन मापने के लिए package() Partial Function के साथ speak() फ़ंक्शन का उपयोग करें। package() फ़ंक्शन के लिए तर्क के रूप में सामग्री वाले वैरिएबल का उपयोग करें, उदाहरण के लिए:
player.speak("Package weighs %s pounds" % package(bricks)) player.place(package(bricks))
इसके बाद place() फ़ंक्शन का उपयोग करके सामग्री को क्रेट्स के अंदर स्टोर करें, ऐसा करने के लिए ऊपर दिए गए उदाहरण के अनुसार package() फ़ंक्शन का भी उपयोग करें।
लाल कालीन वाले हल्के X निशान पर bricks का वजन मापें और स्टोर करें। नीले कालीन वाले हल्के X निशान पर planks का वजन मापें और स्टोर करें। नारंगी कालीन वाले हल्के X निशान पर red_bricks का वजन मापें और स्टोर करें। हरे कालीन वाले हल्के X निशान पर wood का वजन मापें और स्टोर करें। स्तर को पूरा करने के लिए सभी चार (4) सामग्रियों को सही क्रेट्स में स्टोर और मापें।