सिंगल स्टार *
सीक्वेंस / कलेक्शन को पॉजिटिव आर्ग्युमेंट्स में अनपैक करता है, इसलिए आप ऐसा कर सकते हैं:
def sum(a, b):
return a + b
values = (1, 2)
s = sum(*values)
यह टपल को अनपैक करेगा ताकि वह वास्तव में इस प्रकार निष्पादित हो:
s = sum(1, 2)
डबल स्टार **
एक ही करता है, केवल एक शब्दकोश का उपयोग करता है और इस प्रकार नाम तर्क देता है:
values = { 'a': 1, 'b': 2 }
s = sum(**values)
आप भी जोड़ सकते हैं:
def sum(a, b, c, d):
return a + b + c + d
values1 = (1, 2)
values2 = { 'c': 10, 'd': 15 }
s = sum(*values1, **values2)
के रूप में निष्पादित करेगा:
s = sum(1, 2, c=10, d=15)
इसके अलावा खंड ४.२.४ देखें - पायथन प्रलेखन की अनप्लगिंग सूची ।
इसके अतिरिक्त, आप कार्यों को लेने *x
और **y
बहस करने के लिए परिभाषित कर सकते हैं , यह फ़ंक्शन को किसी भी स्थिति और / या नामित तर्कों को स्वीकार करने की अनुमति देता है जो विशेष रूप से घोषणा में नामित नहीं हैं।
उदाहरण:
def sum(*values):
s = 0
for v in values:
s = s + v
return s
s = sum(1, 2, 3, 4, 5)
या साथ **
:
def get_a(**values):
return values['a']
s = get_a(a=1, b=2)
यह आपको उन्हें घोषित किए बिना बड़ी संख्या में वैकल्पिक मापदंडों को निर्दिष्ट करने की अनुमति दे सकता है।
और फिर से, आप गठबंधन कर सकते हैं:
def sum(*values, **options):
s = 0
for i in values:
s = s + i
if "neg" in options:
if options["neg"]:
s = -s
return s
s = sum(1, 2, 3, 4, 5)
s = sum(1, 2, 3, 4, 5, neg=True)
s = sum(1, 2, 3, 4, 5, neg=False)