python和matlab类似,支持可变数量的参数。在控制台中举例如下:
a = [1,2]
k = {'a':1,'b':2}
def fun(a,b):
return a,b
fun(*a)
fun(*k)
fun(**k)
输出结果为:
(1,2)
(b,a)
(1,2)
可以看到 python中的任意函数都支持可变参数形式的输入,但要保证输入的数组与函数要求的形参对应。
相应的,我们还可以定义输入参数不定的函数,举例如下:
def fun1(*a):
print(a)
a = [1,2,3,4]
fun1(a)
fun1(1,2,3,4)
对应的输出为:
([1,2,3,4],)
(1,2,3,4)
可见,函数可输入的参数量已经不受限制,最终的输出会是元组形式。
也可以定义输入为字典形式的可变参数函数,此时的输入参数必须写成arg=val的形式:
def fun2(**k):
print(k)
fun2(a=1,b=2,c=3)
对应的输出为:
{'b': 2, 'a': 1, 'c': 3}