先来看个例子:

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和**kwargs?相关推荐

  1. python 中*args 和 **kwargs的区别

    *args的用法 当你不确定你的函数里将要传递多少参数时你可以用*args.例如,它可以传递任意数量的参数: def print_everything(*args):for count, thing ...

  2. Python中*args和**kwargs的区别

    https://www.cnblogs.com/yunguoxiaoqiao/p/7626992.html (注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 中秋的夜,微凉, ...

  3. Python中*args 和**kwargs的用法探讨

    当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值.不确定的意思可以是有,有几个,也可以是没有 *args可以当作可容纳多个变量组成的l ...

  4. Python3中参数*args和**kwargs介绍

    在Python中,我们可以使用两种特殊符号将可变数量的参数传递给函数:*args和**kwargs.你可以使用任何单词代替args和kwargs,但通常做法是使用args和kwargs.       ...

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

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

  6. python的认识_理解 Python 中的 *args 和 **kwargs

    Python是支持可变参数的,最简单的方法莫过于使用默认参数,例如: def test_defargs(one, two = 2): print 'Required argument: ', one ...

  7. 【Python】Python中*args 和**kwargs的用法

    好久没有学习Python了,应为工作的需要,再次拾起python,唤起记忆. 当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值. 还是 ...

  8. python中args和kwargs_Python 函数参数*args和**kwargs

    尽管*args和**kwargs参数不受重视,但这它们是Python中非常有用的特性.了解其中的潜能会让你成为更高效的开发者. *args和**kwargs参数到底有什么用呢?它们能让函数接受可选参数 ...

  9. 风云编程python-Python中*args 和**kwargs的用法

    刚开始学习python的时候,对有关args,kwargs,和*的使用感到很困惑.相信对此感到疑惑的人也有很多.我打算通过这个帖子来排解这个疑惑(希望能减少疑惑). 让我们通过以下5步来理解: 1. ...

  10. Python : 什么是*args和**kwargs[转载]

    例子 def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '---------------- ...

最新文章

  1. 机器学习入门(08)— 损失函数作用和分类(均方误差、交叉熵误差)
  2. 【网摘】检测 iframe 是否加载完成
  3. R语言计算回归模型的SST、SSR以及SSE指标实战
  4. centos 日志审计_Linux\CentOS中auditd安全审计工具的使用
  5. JavaScript实现按位运算符乘以无符号数multiplyUnsigned算法(附完整源码)
  6. maven插件编写_编写Maven插件的提示
  7. 工作失职的处理决定_工作失职的处理决定
  8. LeetCode 965. 单值二叉树
  9. 机器学习笔记(十八)——HMM的参数估计
  10. 【转】使用python进行多线程编程
  11. 关于Web面试的基础知识点--Javascript(二)
  12. C++ STL容器vector篇(三) vector容器大小和数组大小, 插入和删除元素, 存储和读取元素
  13. linux 串口命令
  14. java求梯形面积程序_Java初级应用,计算关于梯形跟圆形的面积。该程序中有3个类:Lader、Circle和主类Test。...
  15. 阿里巴巴字体库的下载以及三种用法
  16. uniapp文件体积超过 500KB报错
  17. 如何用excel快速实现“平均值±标准差”
  18. VT是什么?怎么打开教程
  19. 软件测试用例设计时的颗粒度
  20. php 高洛峰 正则,PHP 自定义 Smarty 模板引擎类 高洛峰 细说PHP

热门文章

  1. CentOS7环境下搭建flume
  2. SPH(光滑粒子流体动力学)流体模拟实现七:屏幕空间流体渲染(SSF)
  3. php新闻列表排序,javascript 新闻列表排序简单封装
  4. python 勒索病毒 源码_python生成的exe被360识别为勒索病毒原因及解决方法
  5. tomcat加上了https后访问不了_西部数码使用指南:部署https后访问提示存在安全隐患的排查解决方法...
  6. iOS开发经验总结—内存管理
  7. UE4 控制台管理器: 在C++中设置控制台变量
  8. Windows下学习Objective-C 2.0
  9. [转]在Windows server 2012上部署DPM 2012 SP1 RTM之安装配置
  10. NGUI的slider的滑动条制作(SliderScript)