看参数源码里面方法里面总是带有*args和**kwargs 一直没有弄清楚是什么意思,感觉和很不明觉厉,一直没有时间弄清楚,今天有时间,觉得还是弄清楚比较好,就百度了一下,网上有好多的简单直白的翻译,按照自己理解的在记录一下,巩固巩固。

  1. *args的含义 按照我的理解是不同数量的变量的集合,元祖形式。举例

def show (*arg):print(arg)
show(1)
show(1,2)
show('hello','world','!!!')
##################################################
(1,)
(1, 2)
('hello', 'world', '!!!')
  1. **kwargs 的含义 这个就是以key=value是存储的关键字参数的集合 dict 形式 举例

def show(**arg):print(arg)
show(o1=2)
show(one=2, two='je')
show(one='hello', two='world', three='!!!')
##################################################
{'o1': 2}
{'one': 2, 'two': 'je'}
{'one': 'hello', 'two': 'world', 'three': '!!!'}

把代码改了改,

def show(**arg):print(arg.get('two'))print(arg.get('ones', 'None'))print(arg['three'])
show(one='hello', two='world', three='!!!')
#############################################################
world
None
!!!

总结: 整理完毕之后,瞬间觉得自己技能等级+1,但是可能是我的基础不咋扎实,碰到了几个个小问题。

  1. 这个key不能是数值开头,不要问我是怎么知道的。

  2. dict.get(‘key’,‘没有key返回的值’),带默认返回值的要写在 没有默认返回值的参数后面

  3. arg[‘key’] 这种不能写在 不带默认返回值的get()前面

  4. dict.get(‘key’,‘没有key返回的值’)和arg[‘key’] 不分先后

python 的 *args和 **kwargs 分别是什么意思相关推荐

  1. python中*args和**kwargs的使用

    文章来源:*Args和**kwargs的使用[重复] - 代码领悟code05.com 提问:python中*args和**kwargs的使用 所以我对*args和**kwargs的概念有困难. 到目 ...

  2. python中*args和**kwargs的用法

    args 和 kwargs 不是必须的,* 和 ** 才是必须的 两者都用于对函数进行参数传递,允许传递不定量的参数给函数 1. Overview 如果对各位同学这两个参数知道的很少,那不妨先输出一下 ...

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

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

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

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

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

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

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

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

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

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

  8. Python中*args和**kwargs

    *一.args的使用方法 *args 用来将参数打包成tuple给函数体调用 def fun(*arg):print(arg,type(arg))print(*arg) fun(1,2,[8,9]) ...

  9. 详解Python的*args和 **kwargs

    *args表示任何多个无名参数,它是一个tuple:**kwargs表示关键字参数,它是一个dict. def fun(*args, **kwargs):print 'args = ', argspr ...

最新文章

  1. 渣科如何逆袭进阿里 No.137
  2. linux c implicit declaration of function 警告的解决方法
  3. 基本环境安装: Centos7+Java+Hadoop+Spark+HBase+ES+Azkaban
  4. sql判断null/空缺值
  5. redis经典三节点高可用哨兵模式集群搭建
  6. java获取音频_java获取音频文件播放时长
  7. 【Java小项目】简单的天气预报
  8. el表达式原样输出问题
  9. python获取读取文件的文件名_python文件名获取文件路径
  10. 树莓派python编程小车_树莓派智能车AlphaBot教程11:Python 网络编程
  11. 多核处理器真的能提升软件系统性能吗?
  12. 玩平衡小车系列—TB6612FNG与直流电机控制教程
  13. Redis删除键命令: 入门用del,老手用unlink,有何区别?
  14. macOS 使用 X11 运行远端 linux 中的 x11 client 图形程序
  15. FlyMcu给STM32一键烧录程序
  16. 市场上Web 应用防火墙哪家好?
  17. 博士招生从1万到10万再到100万
  18. 库存商品出入库方式分析
  19. 数据结构:尾插法建立单链表
  20. Folksam数据泄露将100万瑞典人的信息泄露给谷歌、Facebook等巨头

热门文章

  1. 磁场检测传感器的设计
  2. EXCEL之工资表转工资条
  3. 鸿蒙系统下拉菜单,华为鸿蒙系统官方
  4. 这个七夕,送你一份程序员教科书级别的告白指南
  5. 《VALORANT》: 双塔迷城的诞生
  6. PDF、Word、Excel文件前端预览实操干货都在这!
  7. C#学习笔记:子类于父类的构造函数的关系【By Myself】
  8. JVM内存和垃圾回收-12.String Table
  9. ESP32学习笔记(23)——NVS(非易失性存储)接口使用
  10. 串口服务器采集需要通讯协议么,C2000-A2-SDX6000-CX1