Python中,函数的参数可以是不确定个数的,其格式如下所示。
def write_multiple_items(*args):
其中,参数*args表示多个参数。
1 使用方法
自定义一个不定参数个数的函数,其代码如图1所示。
图1 不确定参数个数的函数
其中,write_multiple_items()函数的参数个数不定。如图1①所示,调用该参数时,为其指定了两个参数;而图1②总为该函数指定了四个参数。以上代码运行的效果如图2所示。
图2 代码运行效果
2 注意事项
2.1 参数*args要放在参数列表的最后
当函数中包含多个参数时,表示不定个数参数的*args,必须在参数列表的最后,如图3所示。
图3 多个参数的情况
其中,*args放在write_multiple_items函数参数列表的最后一项。此时,代码运行的效果如图4所示。
图4 代码运行效果
因为*args表示之后所有的参数,如果把其放在函数参数列表的前面,则会覆盖之后的其他参数,如图5所示。
图5 将*args放在函数参数列表的前面
如图5①所示,将*args放在了ch参数之前,运行该代码,程序报错,报错信息如图6所示。
图6 报错信息
该报错信息提示了调用write_multiple_items()函数时,没有指定ch参数的值,实际上编译器把所有的参数都认定成了*args。
2.2 在*args放在关键字参数之前
中提到,Python自定义函数的关键字参数相关知识。可以将在*args放在关键字参数之前,如图7所示。
图7 将在*args放在关键字参数之前
其中,图7①中的代码write_multiple_items()函数的不确定个数参数*args在参数列表中位于ch参数之前,但是ch参数是一个关键字参数,在图7②中指定ch参数的值,此时代码运行效果如图8所示。
图8 代码运行效果