不定长参数的传递
若要传入函数中的参数的个数不确定,可以使用不定长参数。不定长参数也称可变参数,此种参数接收参数的数量可以任意改变。包含可变参数的函数其语法格式如下:
def 函数名([formal_args,] *args, **kwargs):
"函数_文档字符串"
函数体
[return语句]
以上语法格式中的参数*args
和参数**kwargs
都是不定长参数,这两个参数可搭配使用,亦可单独使用。下面分别介绍这两个不定长参数的用法。
1.*args
不定长参数*args
用于接收不定数量的位置参数,调用函数时传入的所有参数被*args
接收后以元组形式保存。定义一个包含参数*args
的函数,示例代码如下:
def test(*args):
print(args)
调用以上函数,传入任意个参数,具体代码如下:
test(1, 2, 3, 'a', 'b', 'c')
运行代码,结果如下所示:
(1, 2, 3, 'a', 'b', 'c')
2.**kwargs
不定长参数**kwargs
用于接收不定数量的关键字参数,调用函数时传入的所有参数被**kwargs
接收后以字典形式保存。定义一个包含参数**kwargs
的函数,示例代码如下:
def test(**kwargs):
print(kwargs)
调用以上函数,传入任意个关键字参数,具体代码如下:
test(a=1, b=2, c=3, d=4)
运行代码,结果如下所示:
{'c': 3, 'd': 4, 'a': 1, 'b': 2}