পাইথনের প্রতিটি ফাংশন পূর্বনির্ধারিত সংখ্যক আর্গুমেন্ট গ্রহণ করে, যদি সাধারণভাবে ঘোষণা করা হয়, যেমন:
def myfunction(first, second, third):
# do something with the 3 variables
...
নিম্নলিখিত সিনট্যাক্সটি ব্যবহার করে এমন ক্রিয়াকলাপ ঘোষিত করা সম্ভব যা অগণিত সংখ্যক আর্গুমেন্ট গ্রহণ করে:
def foo(first, second, third, *therest):
print("First: %s" % first)
print("Second: %s" % second)
print("Third: %s" % third)
print("And all the rest... %s" % list(therest))
“therest” ভেরিয়েবলটি ভেরিয়েবলগুলির একটি তালিকা, যা প্রথম ৩ টি আর্গুমেন্টের পরে “foo” ফাংশনে প্রদত্ত সমস্ত আর্গুমেন্ট গ্রহণ করে। সুতরাং foo(1,2,3,4,5) কল করলে প্রিন্ট হবে:
def foo(first, second, third, *therest):
print("First: %s" %(first))
print("Second: %s" %(second))
print("Third: %s" %(third))
print("And all the rest... %s" %(list(therest)))
foo(1,2,3,4,5)
ফলাফল:
First: 1
Second: 2
Third: 3
And all the rest... [4, 5]
কীওয়ার্ড দ্বারা ফাংশন আর্গুমেন্ট প্রেরণ করাও সম্ভব হয় নিম্নলিখিত সিনট্যাক্সটি ব্যবহার করে আর্গুমেন্ট ক্রমটি বিবেচনা না করে। নিম্নলিখিত কোডটি নিম্নলিখিত আউটপুট দেয়: Sum: 6 Result: 1
def bar(first, second, third, **options):
if options.get("action") == "sum":
print("The sum is: %d" %(first + second + third))
if options.get("number") == "first":
return first
result = bar(1, 2, 3, action = "sum", number = "first")
print("Result: %d" %(result))
ফলাফল:
The sum is: 6
Result: 1
“bar” ফাংশনটি ৩ টি আর্গুমেন্ট গ্রহণ করে। যদি কোনও অতিরিক্ত “action” আর্গুমেন্ট পাওয়া যায় এবং এটি সংখ্যার যোগফল দেওয়ার নির্দেশ দেয় তবে যোগফলটি প্রিন্ট হয়। বিকল্পভাবে, ফাংশনটি এটিও জানে যে প্রথম যুক্তিটি ফিরিয়ে আনতে হবে, যদি ফাংশনে পাস করা “number” প্যারামিটারের মান “প্রথম” এর সমান হয়।