तीन प्रकार के तर्क हैं जो एक पायथन फ़ंक्शन स्वीकार कर सकता है: मानक, चर (*args), और कीवर्ड (**kwargs)। मानक तर्क सबसे सरल हैं लेकिन सीमित कार्यक्षमता वाले हैं। दूसरी ओर, *args और **kwargs इनपुट की एक चर संख्या को स्वीकार करके, आपको अपने कार्यों को अधिक लचीला बनाने में सक्षम बनाता है।
आपके द्वारा चुने गए तर्क-पासिंग का प्रकार आपके कार्य की प्रकृति और आपकी अपनी पसंदीदा प्रोग्रामिंग शैली पर निर्भर करता है।
पायथन में बुनियादी कार्य
यह समझने के लिए कि पायथन में दो चर तर्क कैसे काम करते हैं, यह समझना आवश्यक है कि वे पहले स्थान पर क्यों मौजूद हैं। एक साधारण कार्य निश्चित संख्या में अज्ञात तर्कों की घोषणा करता है जैसे:
डीईएफ़अतिरिक्त(ए, बी, सी):
वापसी ए + बी + सी
यह फ़ंक्शन ठीक काम करता है, लेकिन इसमें सुधार की गुंजाइश है। सबसे बड़ा मुद्दा यह है कि यह केवल दो तर्कों को संभालता है, इसलिए यह केवल दो संख्याओं को जोड़ सकता है। क्या होगा यदि आप दो या चार नंबर जोड़ना चाहते हैं? यह फ़ंक्शन आपको ऐसा करने की अनुमति नहीं देगा। फ़ंक्शन द्वारा स्वीकार किए जाने वाले तर्कों की तुलना में अधिक या कम तर्क पारित करने से TypeError हो जाएगा।
बेशक, आप विभिन्न प्रकार के तर्कों को स्वीकार करने के लिए और अधिक फ़ंक्शन बना सकते हैं। लेकिन यह असुविधाजनक है और यह बिल्कुल भी अच्छा नहीं होगा। हर बार जब आप इनपुट की एक नई संख्या को संभालना चाहते हैं तो आपको एक नया फ़ंक्शन भी बनाना होगा।
यहीं पर परिवर्तनीय तर्क और कीवर्ड तर्क आते हैं। *args और **kwargs का उपयोग करके, आप लचीले फ़ंक्शंस को परिभाषित कर सकते हैं जो इनपुट की एक चर संख्या ले सकते हैं।
पायथन में *args क्या है?
पायथन में *args के पीछे मुख्य विचार यह है कि आप अपने फ़ंक्शन में इनपुट की एक चर संख्या पास कर सकें। यह विभिन्न अनुप्रयोगों में काम आता है। उदाहरण के लिए, एक कैलकुलेटर प्रोग्राम के बारे में सोचें जहां आप उपयोगकर्ता को दो या अधिक संख्याएं जोड़ने और राशि वापस करने की क्षमता देना चाहते हैं।
ध्यान दें कि args केवल एक चर नाम है; यह * वह महत्वपूर्ण है। जब तक आप *.
*Args. का उपयोग कैसे करें
आप निम्नानुसार इनपुट की एक चर संख्या लेने के लिए एडनम फ़ंक्शन को संशोधित कर सकते हैं:
डीईएफ़अतिरिक्त(* तर्क):
कुल = 0के लिये अंक में तर्क:
कुल = कुल + संख्या
वापसी कुल
उपरोक्त कोड स्निपेट लूप के लिए उपयोग करता है आपूर्ति किए गए इनपुट के माध्यम से पुनरावृति करने के लिए।
फिर आप चर तर्कों के साथ एडनम फ़ंक्शन को कॉल कर सकते हैं और यह बिना किसी त्रुटि के काम करेगा:
प्रिंट(अतिरिक्त(10, 1, 12, 12, 4, 54, 5)) ## रिटर्न 98
प्रिंट(अतिरिक्त(14, 54, 5)) # रिटर्न 73
प्रिंट(अतिरिक्त(10, 5)) # रिटर्न 15
पायथन में **kwargs क्या है?
जबकि *args और **kwargs दोनों हमें फ़ंक्शन के लिए इनपुट की एक चर संख्या पास करने की अनुमति देते हैं, बाद वाला कीवर्ड तर्कों के लिए विशिष्ट है। यदि आप नहीं जानते हैं, तो कीवर्ड तर्क नाम के साथ तर्कों के लिए केवल फैंसी नाम हैं।
**kwargs के बारे में एक और अनोखी बात यह है कि पायथन एक शब्दकोश के रूप में मूल्य का प्रतिनिधित्व करता है।
**kwargs. का उपयोग कैसे करें
*आर्ग्स की तरह, डबल-तारांकन महत्वपूर्ण बिट है; आप पैरामीटर नाम के रूप में किसी भी शब्द का उपयोग कर सकते हैं। पायथन में **kwargs का उपयोग करने का एक उदाहरण यहां दिया गया है:
डीईएफ़साप्ताहिक_उपस्थिति(**कार्यदिवस):
टोटल_अटेंडीज़ = 0के लियेसहभागीमेंकाम करने के दिनमूल्य():
टोटल_अटेंडीज़ = टोटल_अटेंडीज़ + अटेंडीज़वापसी टोटल_अटेंडीज़
प्रिंट(साप्ताहिक_उपस्थिति (सोमवार = .) 265, मंगलवार = 698, बुधवार = 365, गुरुवार = 463, शुक्रवार = 234)) # रिटर्न 2025
प्रिंट(साप्ताहिक_उपस्थिति (सोमवार = .) 265, शुक्रवार = 234)) # रिटर्न 499
प्रिंट(साप्ताहिक_उपस्थिति (बुधवार = 365, गुरुवार = 463, शुक्रवार = 234)) # रिटर्न 1062
उपरोक्त कोड स्निपेट भी लूप के लिए उपयोग करता है, लेकिन इस बार पायथन के अंतर्निर्मित मान () विधि के साथ। वह विधि शब्दकोश में सभी मानों का एक दृश्य वस्तु लौटाती है। मान () विधि आपको करने की अनुमति देती है एक पायथन शब्दकोश के माध्यम से लूप बिना परेशानी के।
अपने पायथन कार्यों को लचीला बनाने के लिए परिवर्तनीय तर्कों का प्रयोग करें
फ़ंक्शन तर्क आसान हैं, लेकिन कुछ फ़ंक्शन तर्कों की एक चर संख्या को स्वीकार करने से लाभान्वित हो सकते हैं। नामांकित कीवर्ड तर्क आपके कोड को अधिक पठनीय और उपयोग में आसान बना सकते हैं। आपको पायथन के *args और **kwargs तर्कों को अपनाना चाहिए। वे उपयोग करने के लिए बहुत आसान हैं, और उनके साथ, आप अपने कार्यों और कार्यक्रमों को और अधिक लचीला बना सकते हैं।
उपरोक्त चरणों और कोड स्निपेट का पालन करके, हम आशा करते हैं कि अब आप अपने कार्यों के लिए परिवर्तनीय कीवर्ड और गैर-कीवर्ड तर्कों का उपयोग कर सकते हैं।