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

पायथन में आर्गुमेंट्स पैकिंग और अनपैकिंग

पायथन में *args और **kwargs फ़ंक्शन डेफिनिशन और कॉल में पैकिंग/अनपैकिंग के लिए उपयोग होते हैं।

पैकिंग (फ़ंक्शन डेफिनिशन में)

कई आर्गुमेंट्स को एक टपल/डिक्शनरी में पैक करना:

def func(*args, **kwargs):
    print(args)    # टपल
    print(kwargs)  # डिक्शनरी

func(1, 2, 3, a=4, b=5)
# (1, 2, 3)
# {'a': 4, 'b': 5}

अनपैकिंग (फ़ंक्शन कॉल में)

सीक्वेंस/डिक्शनरी को अलग-अलग आर्गुमेंट्स में खोलना:

def func1(x, y, z):
    print(x, y, z)

lst = ['python', 'java', 'csharp']
func1(*lst)  # अनपैकिंग: python java csharp

d = {'x': 27, 'y': 54, 'z': 81}
func1(**d)   # 27 54 81

व्यावहारिक उदाहरण: आर्गुमेंट्स मॉडिफाई करना

def func1(x, y, z):
    print("Argument One:", x)
    print("Argument Two:", y)
    print("Argument Three:", z)

def func2(*args):
    args = list(args)          # टपल को लिस्ट में बदलें (मॉडिफाई करने के लिए)
    args[0] = 'Hello'
    args[1] = 'TutorialsPoint'
    func1(*args)               # फिर से अनपैक करके कॉल करें

func2("I", "Love", "Coding")
# Argument One: Hello
# Argument Two: TutorialsPoint
# Argument Three: Coding

अनजान संख्या में आर्गुमेंट्स: सम फ़ंक्शन

def Sum(*args):
    total = 0
    for i in args:
        total += i
    return total

print(Sum(9, 12))              # 21
print(Sum(2, 3, 4, 5, 6))      # 20
print(Sum(20, 30, 40, 12, 40, 54))  # 196

डिक्शनरी अनपैकिंग **

def func(x, y, z):
    print(x, y, z)

d = {'x': 27, 'y': 54, 'z': 81}
func(**d)  # 27 54 81

आम उपयोग केस

  • व्रैपर फ़ंक्शन्स: डेकोरेटर्स, प्रॉक्सी फ़ंक्शन्स।
  • वेब फ्रेमवर्क्स: Django व्यू फ़ंक्शन्स में वेरिएबल आर्गुमेंट्स पास करना।
  • सॉकेट प्रोग्रामिंग: वेरिएबल संख्या में रिक्वेस्ट हैंडल करना।
  • लाइब्रेरी रैपर्स: मौजूदा फ़ंक्शन्स को डिफ़ॉल्ट आर्गुमेंट्स के साथ अनुकूलित करना।

सिंटैक्स सारांश

संदर्भ* (स्टार)** (डबल स्टार)
फ़ंक्शन डेफिनिशनपोजिशनल आर्गुमेंट्स पैक → टपलकीवर्ड आर्गुमेंट्स पैक → डिक्शनरी
फ़ंक्शन कॉलसीक्वेंस अनपैक → पोजिशनल आर्गुमेंट्सडिक्शनरी अनपैक → कीवर्ड आर्गुमेंट्स
  1. पायथन में सहसंबंध और रिग्रेशन पायथन में सहसंबंध और रिग्रेशन

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

  1. - पायथन में कमांड लाइन आर्गुमेंट्स

    कमांड लाइन आर्गुमेंट्स प्रोग्राम को रनटाइम पर कॉन्फ़िगर करने की अनुमति देते हैं। पायथन इन्हें पढ़ने के कई तरीके प्रदान करता है। 1. sys.argv (सबसे सरल) sys.argv एक लिस्ट है जिसमें कमांड लाइन आर्गुमेंट्स स्ट्रिंग्स के रूप में होते हैं। import sys print(type(sys.argv)) # print(Command line argument

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

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