Python 中函数的实际参数数量可以是不固定的,比如经常使用的内建函数 print
可以传入任意数量的参数进行打印。
Python 中的可变参数有两种:任意长度参数 和 任意关键字参数。
# 任意长度参数
def func(*args):
pass
# 任意关键字参数
def func(**kwargs):
pass
任意长度参数——就和它的名字一样,可以接受任意长度的实际参数,这些实际参数会包裹在 元组 args
中:
任意关键字参数——即传递实际参数时可以接受任意数量、任意名称的关键字参数,这些实际参数会包裹在 字典 kwargs
中:
任意长度参数和任意关键字参数以及普通参数可以组合使用,但需要按照普通参数、任意长度参数、任意关键字参数的顺序排列:
# 前两个实际参数传递给 arg1 和 arg2
# 之后的实际参数传递给 args
# 按名称传递的关键字参数全部传递给 kwargs
def func(arg1, arg2, *args, **kwargs):
pass
*args
和 **kwargs
即可接受任何形式的参数,然后通过 解包语法 即可实现参数透传: