उन्नत पायथन विकास पाठ्यक्रम
अध्याय
>
स्तर
उन्नत फ़ंक्शन्स
नेस्टेड फ़ंक्शंस
लक्ष्य
नेस्टेड फंक्शन्स का उपयोग करते हुए मशीनों द्वारा उत्पादित कपड़े को एकत्रित करें, पुनर्वितरित करें और ठीक से रखें।
कभी-कभी आप किसी फंक्शन की कार्यक्षमता बढ़ाने के लिए उसके अंदर अन्य फंक्शन्स रखना चाहेंगे। इन्हें नेस्टेड फंक्शन्स या इनर फंक्शन्स कहा जाता है, जिनके कई उपयोग हैं, एक फंक्शन के अंदर सरल पुन: प्रयोज्य कोड बनाने से लेकर बाहरी हेरफेर से अपने फंक्शन्स की सुरक्षा तक।
वर्कशॉप के अंदर कई कपड़ा बनाने वाली मशीनें हैं, कुछ के पास संग्रह के लिए तैयार कपड़ा होता है, तो कुछ को कपड़ा पूरा करने के लिए धागे की आवश्यकता होती है। प्रत्येक मशीन के सामने या तो "red" या "green" या हरे कालीन की व्यवस्था होती है, जो यह निर्धारित करती है कि इसका उपयोग कैसे किया जाएगा। कोड संपादक में एक फंक्शन लिखा जाएगा जो हमें मशीन का संचालन करने और मशीन से सामग्री एकत्र करने या रखने देगा।
def operate_machine(color):
def collect_cloth():
# Collect Code
player.speak("Cloth is ready for storage")
def place_thread():
# Place Code
player.speak("Machine needed more materials")
if color == "green":
collect_cloth()
if color == "red":
place_thread()
फंक्शन का नाम operate_machine है और यह color नाम के आर्गुमेंट को लेता है। मशीन के सामने किस रंग का कालीन है, उसके आधार पर "red" या "green" को आर्गुमेंट के रूप में दर्ज करने से मशीन का संचालन बदल जाएगा, जिससे आप आइटम जमा या इकट्ठे कर सकेंगे।
फंक्शन के अंदर आपको दो नेस्टेड फंक्शन्स मिलेंगे, जिनका नाम collect_cloth() और place_thread() है, जो उनके नाम में वर्णित उद्देश्यों के लिए उपयोग किए जाते हैं। इनके अंदर आवश्यक लाइनों की कमी है, collect_cloth() में लाइन player.collect("cloth") जोड़ें, जिसके बाद player.speak("Quilt is ready for storage") आता है और place_thread() में लाइन player.place("thread") जोड़ें, जिसके बाद player.speak("Machine needed more materials") आता है।
एक बार जब नेस्टेड फंक्शन्स में कोड की कमी पूरी हो जाए, तो क्रेट के सामने स्थित लाइट X मार्क पर जाएँ और मशीन में उपयोग के लिए "thread" एकत्र करें, इस प्रकार player.collect("thread")।
वर्कशॉप के अंदर स्थित डार्क X मार्क्स की ओर जाएँ और मशीनों के सामने खड़े होकर कस्टम फंक्शन operate_machine का उपयोग करें। जिस X मार्क के ऊपर का कालीन रंगीन है उसके अनुसार आर्गुमेंट में "red" या "green" जोड़ें, उदाहरण के लिए: operate_machine("red")। यह आपको धागा रखने और कपड़ा एकत्र करने की अनुमति देगा।
एक बार जब आपने सभी कपड़ों को एकत्र कर लिया, तो पीछे क्रेट के पास स्थित सुनहरे X मार्क पर जाएँ और place() फंक्शन का उपयोग करके कपड़ों को संग्रहित करें। एक वैरिएबल cloths बनाएं, उसमें आपने कितने कपड़े एकत्र किए हैं यह जोड़ें और लेवल पूरा करने के लिए क्रेट में संग्रहित करें, इस प्रकार: player.place(cloths)।