先来看个例子:

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到底是个啥。看下面的例子就会懂了相关推荐

  1. python什么意思k_对python中的*args与**kwgs的含义与作用详解

    对python中的*args与**kwgs的含义与作用详解 在定义函数的时候参数通常会使用 *args与**kwgs,形参与实参的区别不再赘述,我们来解释一下这两个的作用. *args是非关键字参数, ...

  2. args在python中什么意思_对python中的*args与**kwgs的含义与作用详解

    在定义函数的时候参数通常会使用 *args与**kwgs,形参与实参的区别不再赘述,我们来解释一下这两个的作用. *args是非关键字参数,用于元组,**kw是关键字参数 例如下面的代码 def fo ...

  3. python 中参数*args, **kwargs

    python 中参数*args, **kwargs def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs ...

  4. 一文弄懂Python中的*args 和 **kwargs

    1. 引言 在本文中,我们将讨论 Python 中的 *args 和 **kwargs 及其用法和示例. 闲话少说,我们直接开始吧. 2. 问题引入 在Python中写函数的时候,我们经常需要给函数传 ...

  5. Python中的*args和**kwargs是什么?该如何使用?

    2020-01-16 12:30:00 全文共2911字,预计学习时长9分钟 来源:Pexels 在编程中,函数就是生命! 作为使用Python的新手--无论是编程新手,还是熟悉另一语言的人--都需要 ...

  6. Python 中的*args和**kwargs

    实际上真正的Python参数传递语法是*和**.*args和**kwargs只是一种约定俗成的编程实践.我们也可以写成*vars和**kvars. 可以看到,这两个是python中的可变参数. *ar ...

  7. python中的*args和**kwargs(* 与 **)

    个人总结: 在参数位置上的单星( * ):将参数中的元素合并成一个tuple,(所有非等式格式,都可以看作tuple的元素,字典,列表等都算) 在参数位置上的双星( ** ):将参数中的等式整理成di ...

  8. python中的*args和**args详解

    python中很有趣的两个小东西,先介绍: 1.*args保存多余变量,保存方式为元组. 2.**args保存带有变量名的多余变量,保存方式为字典. 上代码- #args的使用 def fun(x, ...

  9. Python中的args和kwargs

    在Python中的代码中经常会见到这两个词 args 和 kwargs,前面通常还会加上一个或者两个星号.其实这只是编程人员约定的变量名字,args 是 arguments 的缩写,表示位置参数:kw ...

最新文章

  1. 真实!拖垮中小技术团队的 11 宗罪
  2. 不能将参数转化为lparam_反渗透纯水机是将自来水直接转化为超纯水的装置
  3. mysql可以运行在不同sql mode模式下面,sql mode模式定义了mysql应该支持的sql语法,数据校验等...
  4. Jin Ge Jin Qu hao UVA - 12563 (劲歌金曲)01背包,求装入的东西最多(相同多时价值大)
  5. SOLOv2论文简读
  6. java解析简历_java:解析word文档(前程无忧简历),最好有代码案例?poi或者jacob解析都可以,有jar资源,求急。感谢...
  7. PC端微信网页打不开
  8. 比较有理数大小C语言pta,有理数比较PTA
  9. R 单独窗口显示绘图(plots)
  10. 95 费解的开关(递推)
  11. bigworld源码分析(3)——dbMgr分析
  12. Systemverilog:面向对象编程与面向过程编程区别
  13. 小波调研(二):一维离散小波分析
  14. 计算机专业云平台管理试题,练习题云平台/计算机软考考试试题-考试系统
  15. mac在终端打开mysql_如何在Mac上打开终端
  16. 如何编写知识竞赛抢答赛规则和流程策划书
  17. 支付系统-财务记账 复式记账 借贷
  18. google map v3离线版地图
  19. 做回归分析时import ConvergenceWarning出错的问题
  20. 微软智力题以及参考答案

热门文章

  1. 农产品谋定创意种植-农业大健康·焦裕良:新概念新创意
  2. vue引入vue-amap
  3. vue 导出 excel表格
  4. 2019最新Python学习路线图:如何用Python创建微信机器人
  5. linux内核I2C子系统学习(三)
  6. J - Max Sum
  7. linux 下共享库创建及使用
  8. 获取计算机中的硬件信息
  9. ArcGIS Server常见问题集锦(转载)
  10. C#语法之fixed 语句