Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में *args और **kwargs


जब हम पायथन प्रोग्राम में एक फ़ंक्शन परिभाषित करते हैं, तो उद्देश्य फ़ंक्शन के तर्कों को अलग-अलग मान प्रदान करके कोड को बार-बार निष्पादित करना होता है। इस डिज़ाइन में एक चुनौती यह है, क्या होगा यदि हमें हर बार उस फ़ंक्शन को कॉल करते समय संसाधित किए जाने वाले तर्कों की संख्या के बारे में यकीन नहीं है। यहीं पर **args और **kwargs कहलाने वाले विशेष तर्कों की आवश्यकता होती है। आइए उन्हें एक-एक करके देखें।

*args

*args हमें फ़ंक्शन के इनपुट के रूप में परिवर्तनीय संख्या में तर्कों का उपयोग करने में सक्षम बनाता है। नीचे दिए गए उदाहरण में हम संख्याओं की एक श्रृंखला के गुणन का परिणाम ढूंढ रहे हैं। इन संख्याओं की गिनती हर बार फ़ंक्शन को कॉल करने पर भिन्न होती है।

उदाहरण

def findproduct(*many_nums):
    result = 1
    for num in many_nums:
        result = result * num
    print("गुणनफल परिणाम:", result)

findproduct(3, 9)
findproduct(2, 11, 10)

आउटपुट

('गुणनफल परिणाम:', 27)
('गुणनफल परिणाम:', 220)

**kwargs

अगला, ऐसे परिदृश्य होते हैं जब हम कीवर्ड तर्क पास करना चाहते हैं, जो मूल रूप से तर्क के रूप में फ़ंक्शन को कुंजी-मान जोड़े होते हैं।

यहाँ फिर से, हम फ़ंक्शन को ऐसे कीवर्ड तर्कों की परिवर्तनीय संख्या पास कर सकते हैं। ऐसे तर्कों को **kwargs नाम दिया गया है। कृपया ध्यान दें कि ऐसे तर्कों का उपयोग करते समय दो एस्टरिस्क होते हैं। वास्तव में, ऐसे कीवर्ड तर्कों को प्रोग्राम में पायथन डिक्शनरी के रूप में पास किया जाता है जिसमें कई कुंजी-मान जोड़े होते हैं।

उदाहरण

def country_details(**state_info):
    print('\n\n')
    for k, v in state_info.items():
        print("{} is {}".format(k, v))

country_details(StateName="Telangana", Capital="Hyderabad", Population=3400000)
country_details(StateName="Andhra Pradesh", Capital="Amaravati", Population=1000000, ForestCoverage="30%")

आउटपुट

StateName is Telangana
Population is 3400000
Capital is Hyderabad
StateName is Andhra Pradesh
Population is 1000000
ForestCoverage is 30%
Capital is Amaravati
  1. पायथन में सहसंबंध और रिग्रेशन पायथन में सहसंबंध और रिग्रेशन

    सहसंबंध दो डेटा सेट के बीच निर्भरता वाले कुछ सांख्यिकीय संबंधों को संदर्भित करता है। जबकि रैखिक प्रतिगमन एक रैखिक दृष्टिकोण है जो एक आश्रित चर और एक या अधिक स्वतंत्र चर के बीच संबंध स्थापित करता है। एकल स्वतंत्र चर को रैखिक प्रतिगमन कहा जाता है जबकि एकाधिक स्वतंत्र चर को बहु प्रतिगमन कहा जाता है। स

  1. - पायथन में =+ और += क्या करते हैं?

    += ऑपरेटर object.__iadd__() फ़ंक्शन के लिए सिंटैक्टिक शुगर है। पायथन डॉक्स से: ये मेथड ऑगमेंटेड अंकगणितीय असाइनमेंट (+=, -=, *=, @=, /=, //=, %=, **=, <<=, >>=, &=, ^=, |=) को इम्प्लीमेंट करने के लिए कॉल किए जाते हैं। ये मेथड इन-प्लेस ऑपरेशन (self को मॉडिफाई करना) करने का प्रयास करना चा

  1. - पायथन में *args और **kwargs का उपयोग कैसे करें?

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