当我们不确定需要的参数个数时,可以使用不定长参数
来作为形式参数。
不定长参数可以选择传递0~多个值,并将这些值保存为一个元组:
1 | def test(a, b, *args): |
当然不定长参数也可以接受0个参数:
1 | def test(a, b, *args): |
不定长参数还有这样一种格式:结合字典
的不定长参数:
1 | def test(a, b, *args, **kwargs): |
若是这样给不定长参数传值,**kwargs
并不会接收到值,因为我们需要以字典的方式传值
1 | def test(a, b, *args, **kwargs): |
拆包:
如果需要直接给两种不定长参数分别传递元组和字典,应该怎么做呢?
1 | def test(a, b, *args, **kwargs): |
可见,这并不是我们想要的结果,因为Python将我们传递的元组和字典都作为第一种不定长参数的元组的元素了。
但是如果我们这样传递实际参数,就可以分别为两种不定长形式参数赋值:
1 | def test(a, b, *args, **kwargs): |