文章目录
*args和**kwargs
*args 是一个由位置参数组成的元组,**kwargs 是一个由键值参数组成的字典。实际上,*和 ** 才是关键字,写成 *args 和 **kwargs 只是习惯,我们也可以写成 *param 和 **params。以 *args 和 **kwargs 作为参数的函数表示可以接受任意数量和类型的参数。*args 和 **kwargs 的用法如下:
def test_args(*args):
for arg in args:
print(arg)
test_args(1, 2, 3, 'a', 'b')
# 输出
# 1 2 3 'a' 'b'
def test_kwargs(**kwargs):
for k, v in kwargs.items():
print('{} is {}'.format(k, v))
test_kwargs(one = 1, two = 2)
# 输出
# one is 1
# two is 2
如果要同时使用普通参数,*args参数和**kwargs参数,顺序为def func(arg, *args, **kwargs)。
def test_args_kwargs(*args, **kwargs):
for i in args:
print(i)
for k, v in kwargs.items():
print('{} is {}'.format(k, v))
test_args_kwargs(1, 2, 'a', 'b', c = 3, d = 4)
# 输出
# 1 2 a b
# c is 3
# d is 4