आपको किसी फ़ंक्शन को प्रोसेस करने की आवश्यकता हो सकती है जितने आर्गुमेंट्स आपने फ़ंक्शन को परिभाषित करते समय निर्दिष्ट किए थे। इन आर्गुमेंट्स को वेरिएबल-लेंथ आर्गुमेंट्स कहा जाता है और फ़ंक्शन परिभाषा में नामित नहीं होते हैं, आवश्यक और डिफ़ॉल्ट आर्गुमेंट्स के विपरीत।
सिंटैक्स
नॉन-कीवर्ड वेरिएबल आर्गुमेंट्स वाले फ़ंक्शन के लिए सिंटैक्स यह है:
def functionname([formal_args,] *var_args_tuple):
"function_docstring"
function_suite
return [expression]
वेरिएबल नाम के सामने एक एस्टरिस्क (*) रखा जाता है जो सभी नॉन-कीवर्ड वेरिएबल आर्गुमेंट्स के मानों को रखता है। यदि फ़ंक्शन कॉल के दौरान कोई अतिरिक्त आर्गुमेंट्स निर्दिष्ट नहीं हैं तो यह टुपल खाली रहता है।
उदाहरण
#!/usr/bin/python
# फ़ंक्शन परिभाषा यहां है
def printinfo(arg1, *vartuple):
"This prints a variable passed arguments"
print "Output is: "
print arg1
for var in vartuple:
print var
return
# अब आप printinfo फ़ंक्शन को कॉल कर सकते हैं
printinfo(10)
printinfo(70, 60, 50)
आउटपुट
जब उपरोक्त कोड निष्पादित होता है, तो यह निम्नलिखित परिणाम देता है:
Output is: 10 Output is: 70 60 50