Python*args和**kwargs的区别
Posted 下辈子做一只猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python*args和**kwargs的区别相关的知识,希望对你有一定的参考价值。
1、*args表示将参数作为元组传给函数
通过一个函数的定义来理解’*args’的含义
修改函数的定义:
>>> def fun(*args):
... print args
...
传一个位置参数调用此函数
>>> fun(13)
(13,)
传多个参数调用此函数
>>> fun(11,93,43)
(11, 93, 43)
‘*args’在函数定义中是做什么用的?
它接收元组作为位置参数,而非是常见的参数列表。在这里,”args”是个元组。在上个例子中,调用函数打印”args”时,他会打印元组中包含的所有数值。
2、**kwargs表示将参数作为字典传给函数
通过函数定义来理解’**kwargs’的含义
重定义函数”fun”:
>>> def fun(a, **kwargs):
... print a, kwargs
...
此函数只用一个位置参数,因为常规参数列表中只有一个变量’a’.但是通过”**kwargs”,可以传多个键值参数。
>>> fun(1, b=4, c=5)
1 {\'c\': 5, \'b\': 4}
>>> fun(45, b=6, c=7, d=8)
45 {\'c\': 7, \'b\': 6, \'d\': 8}
在函数定义中”**kwargs”意味着什么?
用”**kwargs”定义函数,kwargs接收除常规参数列表职位的键值参数字典。在这里’kwargs’是个字典。
以上是关于Python*args和**kwargs的区别的主要内容,如果未能解决你的问题,请参考以下文章