इस लेख में, हम उदाहरण के साथ पायथन * आर्ग्स और ** क्वार्ग्स, उनके उपयोग और कार्यों के बारे में जानेंगे।
प्रोग्रामिंग में, हम एक पुन: प्रयोज्य कोड बनाने के लिए एक फ़ंक्शन को परिभाषित करते हैं जो समान ऑपरेशन करता है। उस ऑपरेशन को करने के लिए, हम एक फ़ंक्शन को विशिष्ट मान के साथ कहते हैं, इस मान को पायथन में एक फ़ंक्शन तर्क कहा जाता है।
हम आपको पायथन फंक्शन और पायथन फंक्शन आर्गुमेंट्स पढ़ने की सलाह देंगे।
मान लीजिए, हम 3 संख्याओं को जोड़ने के लिए एक फ़ंक्शन को परिभाषित करते हैं।
उदाहरण 1: 3 संख्याओं को जोड़ने का कार्य
def adder(x,y,z): print("sum:",x+y+z) adder(10,12,13)
जब हम उपरोक्त कार्यक्रम चलाते हैं, तो आउटपुट होगा
राशि: 35
उपरोक्त कार्यक्रम में हमारे पास adder()
तीन तर्क x, y और z हैं। जब हम adder()
फ़ंक्शन को कॉल करते समय तीन मान पास करते हैं, तो हमें आउटपुट के रूप में 3 नंबर मिलते हैं।
देखते हैं कि जब हम adder()
फ़ंक्शन में 3 से अधिक तर्क पास करते हैं तो क्या होता है ।
def adder(x,y,z): print("sum:",x+y+z) adder(5,10,15,20,25)
जब हम उपरोक्त कार्यक्रम चलाते हैं, तो आउटपुट होगा
TypeError: adder () में 3 स्थितिगत तर्क हैं लेकिन 5 दिए गए थे
उपरोक्त कार्यक्रम में, हमने adder()
3 तर्कों के बजाय फ़ंक्शन के लिए 5 तर्क पारित किए, जिसके कारण हमें मिला TypeError
।
पायथन में * आर्ग्स और ** क्वार्ग्स का परिचय
पायथन में, हम विशेष प्रतीकों का उपयोग करके एक फ़ंक्शन के लिए चर संख्या में तर्क पारित कर सकते हैं। दो विशेष प्रतीक हैं:
- * आर्ग्स (गैर खोजशब्द तर्क)
- ** kwargs (कीवर्ड तर्क)
जब हम फ़ंक्शन में पास होने के लिए तर्कों की संख्या के बारे में अनिश्चित होते हैं, तो हम एक तर्क के रूप में * आर्ग और ** क्वार्ग्स का उपयोग करते हैं।
अजगर * अर्ग
जैसा कि उपरोक्त उदाहरण में हम उन तर्कों की संख्या के बारे में निश्चित नहीं हैं जिन्हें किसी फ़ंक्शन में पास किया जा सकता है। पायथन में * आर्ग्स हैं जो हमें कार्य करने के लिए गैर-कीवर्ड तर्कों की चर संख्या को पास करने की अनुमति देते हैं।
फ़ंक्शन में, हमें *
चर नाम के तर्कों को पारित करने के लिए पैरामीटर नाम से पहले एक तारांकन का उपयोग करना चाहिए। तर्कों को एक ट्यूपल के रूप में पारित किया जाता है और ये पारित किए गए तर्क फ़ंक्शन के अंदर एक ही नाम के साथ tuple बनाते हैं, जैसे कि तारांकन को छोड़कर पैरामीटर *
।
उदाहरण 2: फ़ंक्शन का चर लंबाई तर्क पास करने के लिए * args का उपयोग करना
def adder(*num): sum = 0 for n in num: sum = sum + n print("Sum:",sum) adder(3,5) adder(4,5,6,7) adder(1,2,3,5,6)
जब हम उपरोक्त कार्यक्रम चलाते हैं, तो आउटपुट होगा
सम: 8 सुम: २२ सम: १ 22
उपरोक्त कार्यक्रम में, हमने एक पैरामीटर के रूप में * num का उपयोग किया है जो हमें adder()
फ़ंक्शन में चर लंबाई तर्क सूची पास करने की अनुमति देता है । फ़ंक्शन के अंदर, हमारे पास एक लूप है जो पारित तर्क को जोड़ता है और परिणाम प्रिंट करता है। हमने फ़ंक्शन के तर्क के रूप में चर लंबाई के साथ 3 अलग-अलग टुपल्स पारित किए।
अजगर ** कंवर
पायथन * args का उपयोग करके कार्य करने के लिए वैरिएबल लंबाई गैर कीवर्ड तर्क देता है, लेकिन हम इसका उपयोग कीवर्ड तर्क पास करने के लिए नहीं कर सकते हैं। इस समस्या के लिए पायथन को ** kwargs नामक एक समाधान मिला है, यह हमें फ़ंक्शन के लिए कीवर्ड तर्कों की चर लंबाई को पारित करने की अनुमति देता है।
फ़ंक्शन में, हम **
इस प्रकार के तर्क को दर्शाने के लिए पैरामीटर नाम से पहले डबल तार का उपयोग करते हैं । तर्कों को एक डिक्शनरी के रूप में पारित किया जाता है और ये दलीलें फंक्शन के अंदर एक डिक्शनरी बनाती हैं, जिसमें डबल एस्टेरिस्क को छोड़कर पैरामीटर समान होता है **
।
उदाहरण 3: फ़ंक्शन के लिए चर कीवर्ड तर्क पास करने के लिए ** kwargs का उपयोग करना
def intro(**data): print("Data type of argument:",type(data)) for key, value in data.items(): print("() is ()".format(key,value)) intro(Firstname="Sita", Lastname="Sharma", Age=22, Phone=1234567890) intro(Firstname="John", Lastname="Wood", Email="[email protected]", Country="Wakanda", Age=25, Phone=9876543210)
जब हम उपरोक्त कार्यक्रम चलाते हैं, तो आउटपुट होगा
डेटा प्रकार का तर्क: फर्स्टनाम सीता लास्टनेम है शर्मा ऐज इज 22 फ़ोन है 1234567890 डेटा प्रकार का तर्क: फ़र्स्टनेम जॉन लास्टनाम है वुड ईमेल है [email protected] देश है वाकांडा की उम्र 25 है फोन 9876543210 है
उपरोक्त कार्यक्रम में, हमारे पास intro()
एक पैरामीटर के रूप में ** डेटा के साथ एक फ़ंक्शन है। हमने intro()
फ़ंक्शन के लिए चर तर्क लंबाई के साथ दो शब्दकोश पारित किए । हमारे पास intro()
फंक्शन के अंदर लूप है जो पारित शब्दकोश के डेटा पर काम करता है और शब्दकोश के मूल्य को प्रिंट करता है।
याद रखने वाली चीज़ें:
- * args और * kwargs विशेष कीवर्ड हैं जो फ़ंक्शन को चर लंबाई तर्क लेने की अनुमति देते हैं।
- * आर्ग्स नॉन-कीवर्डेड तर्क सूची की चर संख्या को पार करता है और जिस पर सूची का संचालन किया जा सकता है।
- ** kwargs कार्य करने के लिए कीवर्ड तर्कों के चर संख्या देता है, जिस पर किसी शब्दकोश का संचालन किया जा सकता है।
- * args और ** kwargs फ़ंक्शन को लचीला बनाते हैं।