(转)python中的*args和**kw到底是个啥。看下面的例子就会懂了
先来看个例子:
def foo(*args, **kwargs):print 'args = ', argsprint 'kwargs = ', kwargsprint '---------------------------------------'if __name__ == '__main__':foo(1,2,3,4)foo(a=1,b=2,c=3)foo(1,2,3,4, a=1,b=2,c=3)foo('a', 1, None, a=1, b='2', c=3)
输出结果如下:
args = (1, 2, 3, 4)
kwargs = {}
---------------------------------------
args = ()
kwargs = {'a': 1, 'c': 3, 'b': 2}
---------------------------------------
args = (1, 2, 3, 4)
kwargs = {'a': 1, 'c': 3, 'b': 2}
---------------------------------------
args = ('a', 1, None)
kwargs = {'a': 1, 'c': 3, 'b': '2'}
---------------------------------------
可以看到,这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前,像foo(a=1, b='2', c=3, a', 1, None, )这样调用的话,会提示语法错误“SyntaxError: non-keyword arg after keyword arg”。
呵呵,知道*args和**kwargs是什么了吧。还有一个很漂亮的用法,就是创建字典:
def kw_dict(**kwargs):return kwargsprint kw_dict(a=1,b=2,c=3) == {'a':1, 'b':2, 'c':3}
其实python中就带有dict类,使用dict(a=1,b=2,c=3)即可创建一个字典了。
(转)python中的*args和**kw到底是个啥。看下面的例子就会懂了相关推荐
- python什么意思k_对python中的*args与**kwgs的含义与作用详解
对python中的*args与**kwgs的含义与作用详解 在定义函数的时候参数通常会使用 *args与**kwgs,形参与实参的区别不再赘述,我们来解释一下这两个的作用. *args是非关键字参数, ...
- args在python中什么意思_对python中的*args与**kwgs的含义与作用详解
在定义函数的时候参数通常会使用 *args与**kwgs,形参与实参的区别不再赘述,我们来解释一下这两个的作用. *args是非关键字参数,用于元组,**kw是关键字参数 例如下面的代码 def fo ...
- python 中参数*args, **kwargs
python 中参数*args, **kwargs def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs ...
- 一文弄懂Python中的*args 和 **kwargs
1. 引言 在本文中,我们将讨论 Python 中的 *args 和 **kwargs 及其用法和示例. 闲话少说,我们直接开始吧. 2. 问题引入 在Python中写函数的时候,我们经常需要给函数传 ...
- Python中的*args和**kwargs是什么?该如何使用?
2020-01-16 12:30:00 全文共2911字,预计学习时长9分钟 来源:Pexels 在编程中,函数就是生命! 作为使用Python的新手--无论是编程新手,还是熟悉另一语言的人--都需要 ...
- Python 中的*args和**kwargs
实际上真正的Python参数传递语法是*和**.*args和**kwargs只是一种约定俗成的编程实践.我们也可以写成*vars和**kvars. 可以看到,这两个是python中的可变参数. *ar ...
- python中的*args和**kwargs(* 与 **)
个人总结: 在参数位置上的单星( * ):将参数中的元素合并成一个tuple,(所有非等式格式,都可以看作tuple的元素,字典,列表等都算) 在参数位置上的双星( ** ):将参数中的等式整理成di ...
- python中的*args和**args详解
python中很有趣的两个小东西,先介绍: 1.*args保存多余变量,保存方式为元组. 2.**args保存带有变量名的多余变量,保存方式为字典. 上代码- #args的使用 def fun(x, ...
- Python中的args和kwargs
在Python中的代码中经常会见到这两个词 args 和 kwargs,前面通常还会加上一个或者两个星号.其实这只是编程人员约定的变量名字,args 是 arguments 的缩写,表示位置参数:kw ...
最新文章
- 真实!拖垮中小技术团队的 11 宗罪
- 不能将参数转化为lparam_反渗透纯水机是将自来水直接转化为超纯水的装置
- mysql可以运行在不同sql mode模式下面,sql mode模式定义了mysql应该支持的sql语法,数据校验等...
- Jin Ge Jin Qu hao UVA - 12563 (劲歌金曲)01背包,求装入的东西最多(相同多时价值大)
- SOLOv2论文简读
- java解析简历_java:解析word文档(前程无忧简历),最好有代码案例?poi或者jacob解析都可以,有jar资源,求急。感谢...
- PC端微信网页打不开
- 比较有理数大小C语言pta,有理数比较PTA
- R 单独窗口显示绘图(plots)
- 95 费解的开关(递推)
- bigworld源码分析(3)——dbMgr分析
- Systemverilog:面向对象编程与面向过程编程区别
- 小波调研(二):一维离散小波分析
- 计算机专业云平台管理试题,练习题云平台/计算机软考考试试题-考试系统
- mac在终端打开mysql_如何在Mac上打开终端
- 如何编写知识竞赛抢答赛规则和流程策划书
- 支付系统-财务记账 复式记账 借贷
- google map v3离线版地图
- 做回归分析时import ConvergenceWarning出错的问题
- 微软智力题以及参考答案