Python中,函数的参数可以是不确定个数的,其格式如下所示。

def write_multiple_items(*args):

其中,参数*args表示多个参数。

1 使用方法

自定义一个不定参数个数的函数,其代码如图1所示。

参数个数不定的函数 python python参数个数不限_不确定个数参数

图1 不确定参数个数的函数

其中,write_multiple_items()函数的参数个数不定。如图1①所示,调用该参数时,为其指定了两个参数;而图1②总为该函数指定了四个参数。以上代码运行的效果如图2所示。

参数个数不定的函数 python python参数个数不限_Python_02

图2 代码运行效果

2 注意事项

2.1 参数*args要放在参数列表的最后

当函数中包含多个参数时,表示不定个数参数的*args,必须在参数列表的最后,如图3所示。

参数个数不定的函数 python python参数个数不限_自定义函数_03

图3 多个参数的情况

其中,*args放在write_multiple_items函数参数列表的最后一项。此时,代码运行的效果如图4所示。

参数个数不定的函数 python python参数个数不限_Python_04

图4 代码运行效果

因为*args表示之后所有的参数,如果把其放在函数参数列表的前面,则会覆盖之后的其他参数,如图5所示。

参数个数不定的函数 python python参数个数不限_自定义函数_05

图5 将*args放在函数参数列表的前面

如图5①所示,将*args放在了ch参数之前,运行该代码,程序报错,报错信息如图6所示。

参数个数不定的函数 python python参数个数不限_Python_06

图6 报错信息

该报错信息提示了调用write_multiple_items()函数时,没有指定ch参数的值,实际上编译器把所有的参数都认定成了*args。

2.2 在*args放在关键字参数之前

Python中函数的关键字参数_棉猴的博客-CSDN博客

中提到,Python自定义函数的关键字参数相关知识。可以将在*args放在关键字参数之前,如图7所示。

参数个数不定的函数 python python参数个数不限_args_07

图7 将在*args放在关键字参数之前

其中,图7①中的代码write_multiple_items()函数的不确定个数参数*args在参数列表中位于ch参数之前,但是ch参数是一个关键字参数,在图7②中指定ch参数的值,此时代码运行效果如图8所示。

参数个数不定的函数 python python参数个数不限_自定义函数_08

图8 代码运行效果