例子

def foo(*args, **kwargs):
print 'args = ', args
print 'kwargs = ', kwargs
print '---------------------------------------'
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 kwargs
print kw_dict(a=1,b=2,c=3) == {'a':1, 'b':2, 'c':3}
其实python中就带有dict类,使用dict(a=1,b=2,c=3)即可创建一个字典了。

另:连接两个字典的方法:

第一种:

>>> a={'a':'a','b':'b'}
>>> m=dict(c='c',**a)
>>> m
{'a': 'a', 'c': 'c', 'b': 'b'}
>>>

第二种:

>>> a={'a':'a','b':'b'}
>>> m={'c':'c'}
>>> m.update(a)
>>> m
{'a': 'a', 'c': 'c', 'b': 'b'}
>>>

转载于:https://www.cnblogs.com/nwf5d/archive/2011/03/30/2000255.html

Python : 什么是*args和**kwargs[转载]相关推荐

  1. Python技巧:​args 和 kwargs 原来这么强大

    大家好,今天我给大家分享Python技巧:​args 和 kwargs的相关技巧.喜欢记得收藏.关注.点赞. 注:完整代码.资料.技术交流文末获取 现在args和 kwargs参数仍然是 Python ...

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

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

  3. Python 中的*args和**kwargs

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

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

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

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

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

  6. python知识:*args 和**kwargs

    1. *args 和 **kwargs 多数新的 Python 程序员都很难弄清楚 *args 和 **kwargs 魔术变量.那么它们是什么?首先让我告诉你,没有必要写 *args 或 **kwar ...

  7. 理解 Python 中的 *args 和 **kwargs

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

  8. python中形参*args和**kwargs简述

    形参*args的作用:传递任意数量的实参. 形参*args中的星号让python创建一个名为args的空元组,并将收到的所有值都封装到这个元组中.其实args换成其他的标识符完全没问题,只是习惯上用a ...

  9. 转:Python: 什么是*args和**kwargs

    今天看源码的时候发现一个是*args和**kwargs,一看就能知道args是神马,就是所有参数的数组,kwargs就不知道了,google一下,一个人的blog写的比较简单明了,秒懂了~~kwarg ...

最新文章

  1. 微信小程序swiper组件宽高自适应方法
  2. GridView 与ImageAdapter (笔记)
  3. linux oracle 数据库导出
  4. Oracle-分区表解读
  5. 艾媒报告丨2017年全球移动社交市场研究报告
  6. C语言函数最多有有多少个参数,C中子函数最多有几个形参
  7. Shareplex 错误 can't open or read object cache file
  8. spring-test dao空指针异常_014、Java异常机制
  9. 堆和栈区别 java_JAVA中堆和栈的区别
  10. 党媒发声IT圈里的35岁现象
  11. 用pathon实现计算器功能
  12. 前端导出PPT,关于ppexgen.js的详细介绍(个人使用记录)
  13. 2021-2027全球与中国USB C型集线器市场现状及未来发展趋势
  14. 论文笔记:MICCAI2018 Cell Detection with Star-convex Polygons
  15. EOS源码分析(5)账号
  16. 京东、快手及其他小公司Android面试(2020)
  17. 怎样理解电磁兼容电路
  18. 互动媒体技术——Processing创意绘画系统
  19. 烤仔建工 | 法官失职,狼人屠村?
  20. 财务报表OCR识别技术简介

热门文章

  1. python画代码-一行Python代码画心型
  2. python语言入门z-python中a z
  3. python和c哪个适合入门-编程入门选什么语言好?C 语言还是Python ?为你解析
  4. python 基础命令-Python unittest第一篇:基础入门+命令行编译
  5. python慕课视频-python爬虫:爬取网站视频
  6. python处理excel大数据-当Excel遇到大数据问题,是时候用Python来拯救了
  7. python介绍和用途-python四大用途介绍|老男孩python培训
  8. python真的那么火吗-Python语言为什么这么火?
  9. python可以从事什么工作-学Python能干什么工作?工作前景怎么样?
  10. python第三方库下载-python 第三方库下载