码迷,mamicode.com
首页 > 编程语言 > 详细

【Python】*args和**kwargs的区别

时间:2019-03-20 01:17:09      阅读:397      评论:0      收藏:0      [点我收藏+]

标签:做什么   参数调用   number   lang   包含   param   code   alt   常见   

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的区别

标签:做什么   参数调用   number   lang   包含   param   code   alt   常见   

原文地址:https://www.cnblogs.com/jingsheng99/p/10562286.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!