आणि एका फंक्शनला आर्गुमेंट स्वीकारू देते. अतिरिक्त आर्गुमेंट tuple मध्ये एकत्र करते; अतिरिक्त आर्गुमेंट dict मध्ये एकत्र करते. (नावे केवळ परिपाटी आहेत — आणि महत्वाचे आहेत.)
आणि एका फंक्शनला आर्गुमेंट स्वीकारू देते. अतिरिक्त आर्गुमेंट tuple मध्ये एकत्र करते; अतिरिक्त आर्गुमेंट dict मध्ये एकत्र करते. (नावे केवळ परिपाटी आहेत — आणि महत्वाचे आहेत.)
*args**kwargs*args**kwargs***def total(*args): # collects all positional args into a tuple
print(args) # e.g. (1, 2, 3)
return sum(args)
total(1, 2, 3) # 6
total(1, 2, 3, 4, 5) # 15 — any number of args
def configure(**kwargs): # collects keyword args into a dict
print(kwargs) # e.g. {"host": "localhost", "port": 8080}
for key, value in kwargs.items():
print(f"{key} = {value}")
configure(host="localhost", port=8080, debug=True)
def func(a, b, *args, **kwargs):
# a, b → required positional
# args → extra positional (tuple)
# kwargs → extra keyword (dict)
...
func(1, 2, 3, 4, x=5, y=6)
# a=1, b=2, args=(3, 4), kwargs={"x": 5, "y": 6}
आवश्यक क्रम असा आहे: नियमित params, नंतर *args, नंतर **kwargs.
# `*` and `**` also UNPACK collections INTO arguments at the call site
numbers = [1, 2, 3]
total(*numbers) # same as total(1, 2, 3)
settings = {"host": "x", "port": 80}
configure(**settings) # same as configure(host="x", port=80)
समान सिंटॅक्स list/dict ला पॉजिशनल/की-वर्ड आर्गुमेंट मध्ये अनपॅक करते — आर्गुमेंट फॉरवर्ड करण्यासाठी सुविधाजनक.
def wrapper(*args, **kwargs):
# accept ANY arguments and pass them through unchanged
return original_func(*args, **kwargs)
ही पास-थ्रू नमुना असे आहे की डेकोरेटर आणि रॅपर फंक्शन कोणत्याही फंक्शन सिग्नेचर कसे हाताळतात.
*args/**kwargs लवचिक फंक्शन सिग्नेचर सक्षम करते जे कोणतीही संख्या आर्गुमेंट स्वीकारू शकते — सामान्य-उद्देश्य उपयोगिता, रॅपर आणि विशेषतः डेकोरेटर (ज्यांना *args, **kwargs द्वारे अज्ञात सिग्नेचरचे फंक्शन लपवावे लागते) लिहिण्यासाठी आवश्यक.
अनपॅकिंग दिशा (*list, **dict) आर्गुमेंट फॉरवर्ड करण्यासाठी किंवा पसरवण्यासाठी समान उपयोगी आहे.
एकत्रीकरण आणि अनपॅकिंग दोन्हीचे समजणे पुनर्वापरयोग्य, सामान्य Python कोड लिहिण्याचा आणि अनेक लायब्ररी API आणि डेकोरेटर पढ्याचा, जे या वैशिष्ट्यांवर अवलंबून असतात, याचा महत्वाचा भाग आहे.