र फंक्शनलाई तर्क स्वीकार गर्न अनुमति दिन्छ। अतिरिक्त तर्कहरूलाई 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 मार्फत अज्ञात हस्ताक्षरहरूका फंक्शनहरू लपेट्नु पर्छ) लेख्नको लागि आवश्यक।
Unpacking दिशा (*list, **dict) तर्कहरू अग्रेषण गर्न वा फैलाउन समान उपयोगी छ।
सङ्कलन र unpacking दुवैको समझ पुनः प्रयोग योग्य, जेनेरिक Python कोड लेख्न र यी सुविधाहरूमा आश्रित धेरै लाइब्रेरी APIहरू र सजावटकारहरू पढ्नको लागि कुञ्जी हो।