अजगर समारोह तर्क (डिफ़ॉल्ट, कीवर्ड और मनमाना)

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

वीडियो: पायथन फ़ंक्शन के तर्क: स्थिति, कीवर्ड और डिफ़ॉल्ट

तर्क

उपयोगकर्ता-परिभाषित फ़ंक्शन विषय में, हमने एक फ़ंक्शन को परिभाषित करने और इसे कॉल करने के बारे में सीखा। अन्यथा, फ़ंक्शन कॉल में त्रुटि होगी। यहाँ एक उदाहरण है।

 def greet(name, msg): """This function greets to the person with the provided message""" print("Hello", name + ', ' + msg) greet("Monica", "Good morning!")

आउटपुट

 नमस्ते मोनिका, सुप्रभात!

यहां, फ़ंक्शन greet()के दो पैरामीटर हैं।

चूंकि हमने इस फ़ंक्शन को दो तर्कों के साथ बुलाया है, यह आसानी से चलता है और हमें कोई त्रुटि नहीं मिलती है।

यदि हम इसे विभिन्न प्रकार के तर्कों के साथ कहते हैं, तो दुभाषिया एक त्रुटि संदेश दिखाएगा। नीचे इस फ़ंक्शन के लिए एक कॉल है और उनके संबंधित त्रुटि संदेशों के साथ कोई तर्क नहीं है।

 >>> अभिवादन ("मोनिका") # केवल एक तर्क टाइप करें: अभिवादन () अनुपलब्ध 1 आवश्यक तर्क: 'संदेश'
 >>> अभिवादन () # कोई तर्क नहीं टाइप करें: अभिवादन () लापता 2 आवश्यक स्थिति संबंधी तर्क: 'नाम' और 'संदेश'

चर समारोह तर्क

अब तक, फ़ंक्शन के पास निश्चित संख्या में तर्क थे। पायथन में, फ़ंक्शन को परिभाषित करने के अन्य तरीके हैं जो चर संख्या के तर्क ले सकते हैं।

इस प्रकार के तीन अलग-अलग रूपों का वर्णन नीचे किया गया है।

पायथन डिफ़ॉल्ट तर्क

फ़ंक्शन तर्क में पायथन में डिफ़ॉल्ट मान हो सकते हैं।

हम असाइनमेंट ऑपरेटर (=) का उपयोग करके किसी तर्क को एक डिफ़ॉल्ट मान प्रदान कर सकते हैं। यहाँ एक उदाहरण है।

 def greet(name, msg="Good morning!"): """ This function greets to the person with the provided message. If the message is not provided, it defaults to "Good morning!" """ print("Hello", name + ', ' + msg) greet("Kate") greet("Bruce", "How do you do?")

आउटपुट

हैलो केट, गुड मॉर्निंग! हेलो ब्रूस, आप कैसे हैं?

इस फ़ंक्शन में, पैरामीटर nameमें डिफ़ॉल्ट मान नहीं होता है और कॉल के दौरान आवश्यक (अनिवार्य) होता है।

दूसरी ओर, पैरामीटर msgका डिफ़ॉल्ट मान होता है "Good morning!"। तो, यह एक कॉल के दौरान वैकल्पिक है। यदि कोई मान प्रदान किया गया है, तो वह डिफ़ॉल्ट मान को अधिलेखित कर देगा।

किसी फ़ंक्शन के किसी भी तर्क में डिफ़ॉल्ट मान हो सकता है। लेकिन एक बार हमारे पास डिफ़ॉल्ट तर्क होने के बाद, इसके दाईं ओर के सभी तर्कों में भी डिफ़ॉल्ट मान होना चाहिए।

कहने का मतलब यह है कि, गैर-डिफ़ॉल्ट तर्क डिफ़ॉल्ट तर्क का पालन नहीं कर सकते हैं। उदाहरण के लिए, यदि हमने ऊपर दिए गए फ़ंक्शन हेडर को परिभाषित किया है:

 def बधाई (संदेश = "सुप्रभात!", नाम):

हमें एक त्रुटि मिलेगी:

 SyntaxError: गैर-डिफ़ॉल्ट तर्क डिफ़ॉल्ट तर्क का अनुसरण करता है

पायथन कीवर्ड तर्क

जब हम कुछ मानों के साथ एक फ़ंक्शन कहते हैं, तो ये मान उनकी स्थिति के अनुसार तर्कों को असाइन किए जाते हैं।

उदाहरण के लिए, उपरोक्त फ़ंक्शन में greet(), जब हम इसे कहते हैं greet("Bruce", "How do you do?"), तो मान "Bruce"तर्क नाम को असाइन किया जाता है और इसी तरह "How do you do?"msg।

पायथन कार्यों को कीवर्ड तर्कों का उपयोग करने की अनुमति देता है। जब हम इस तरह से कार्य करते हैं, तो तर्कों के क्रम (स्थिति) को बदला जा सकता है। उपरोक्त फ़ंक्शन के लिए कॉल के बाद सभी मान्य हैं और एक ही परिणाम का उत्पादन करते हैं।

 # 2 keyword arguments greet(name = "Bruce",msg = "How do you do?") # 2 keyword arguments (out of order) greet(msg = "How do you do?",name = "Bruce") 1 positional, 1 keyword argument greet("Bruce", msg = "How do you do?") 

जैसा कि हम देख सकते हैं, हम एक फ़ंक्शन कॉल के दौरान कीवर्ड तर्कों के साथ स्थितीय तर्क मिला सकते हैं। लेकिन हमें यह ध्यान रखना चाहिए कि कीवर्ड तर्क को स्थितिगत तर्कों का पालन करना चाहिए।

कीवर्ड के तर्क के बाद स्थितिगत तर्क होने के परिणामस्वरूप त्रुटियां होंगी। उदाहरण के लिए, फ़ंक्शन कॉल निम्नानुसार है:

 greet(name="Bruce","How do you do?")

परिणाम में त्रुटि होगी:

 SyntaxError: कीवर्ड arg के बाद नॉन-कीवर्ड arg

पायथन महत्वाकांक्षी तर्क

कभी-कभी, हम पहले से नहीं जानते हैं कि फ़ंक्शन में कितने तर्क दिए जाएंगे। पायथन हमें मनमाने ढंग से तर्कों के साथ फ़ंक्शन कॉल के माध्यम से इस तरह की स्थिति को संभालने की अनुमति देता है।

फ़ंक्शन परिभाषा में, हम इस तरह के तर्क को निरूपित करने के लिए पैरामीटर नाम से पहले एक तारांकन चिह्न (*) का उपयोग करते हैं। यहाँ एक उदाहरण है।

 def greet(*names): """This function greets all the person in the names tuple.""" # names is a tuple with arguments for name in names: print("Hello", name) greet("Monica", "Luke", "Steve", "John")

आउटपुट

 हैलो मोनिका हैलो ल्यूक हैलो स्टीव हैलो जॉन

यहां, हमने फ़ंक्शन को कई तर्कों के साथ बुलाया है। इन तर्कों को कार्य में पारित होने से पहले एक टुपल में लपेटा जाता है। फ़ंक्शन के अंदर, हम forसभी तर्कों को वापस प्राप्त करने के लिए एक लूप का उपयोग करते हैं।

दिलचस्प लेख...