Python中的多值参数

1. 多值参数

大家在看Python中各个模块的函数时,经常会看到类似如下的情况:

def plotxxx(a, b, *args, **kwargs):
    pass

关于其中的参数部分“*args, **kwargs”,许多人不是特别清晰,看到了许多介绍的文章,也觉得没有说的特别清楚。
其实,可以将上述参数部分“a, b, *args, **kwargs”,分成3个部分:

  1. a, b: 是固定参数,不可缺少,也必须是需要的数据类型;

  2. *args: 是一个多值参数,收受a, b之后的,以同样的形式给出的多个参数,如: c, d, …;

  3. **kwargs: 是一个多值参数,也叫关键字参数,传递时以“reverse=False”的形式给出。
    事实上,*args接收一个元组(Tuple), **kwargs接收一个字典(Dict),我们可以用如下代码来测试:

     def test_args(arg1, arg2, *args, **kwargs):
    	 print(arg1, arg2)
         print(args)
         print(kwargs)
         
     	 test_args(1, 2)
    

输出:

1 2
()
{}

从输出内容可以看出,args是一个空元组,kwargs是一个空字典。大家也可以在调用时增加参数个数,再增加关键字参数进行测试。

2. 多值参数的传递

除了用上述方法传递参数,还可以分别用元组和字典来传递args和**kwargs参数,只是在传递时要对应加上和**。如:

tuple_arg = ("name", "age", "class")
dict_arg = {"name": "闺土", "age": 15, "class": "九年级2班"}
test_args(1, 2, *tuple_arg, **dict_arg)

否则,可能会出现错误,可能不是您想要的效果。

发布了5 篇原创文章 · 获赞 11 · 访问量 171

猜你喜欢

转载自blog.csdn.net/weixin_43343549/article/details/104908833
今日推荐