*args এবং **kwargs ব্যবহার করে পাইথন ফাংশনে ভেরিয়েবল লেংথ আর্গামেন্ট পাস করা যায়।
*args — নন-কিওয়ার্ড ভেরিয়েবল আর্গামেন্ট (টাপল)
def multiply(*args):
result = 1
for i in args:
result *= i
print(result)
multiply(3, 4) # 12
multiply(10, 8) # 80
multiply(2, 5, 6) # 60
multiply(4, 5, 10, 9) # 1800
**kwargs — কিওয়ার্ড ভেরিয়েবল আর্গামেন্ট (ডিকশনারি)
def print_kwargs(**kwargs):
print(kwargs)
print_kwargs(a='foo', b=10, c=True)
# আউটপুট: {'a': 'foo', 'b': 10, 'c': True}
মিক্সড ব্যবহার
def func(required, *args, default="value", **kwargs):
print(required, args, default, kwargs)
func(1, 2, 3, 4, default="changed", x=10, y=20)
# 1 (2, 3, 4) changed {'x': 10, 'y': 20}
আনপ্যাকিং (কলার সাইড)
args = (1, 2, 3)
kwargs = {'a': 10, 'b': 20}
func(*args, **kwargs)
নেমিং কনভেনশন
args এবং kwargs কনভেনশনাল নাম, আস্টারিস্ক (*, **) টিই মূল। যেকোনো নাম ব্যবহার করা যায় (যেমন *numbers, **options)।