一句话简单概括:当函数的参数不确定的时候就需要用到*args和**kwargs,前者和后者的区别在于,后者引入了”可变”key的概念,而前者没有key的概念,具体看下面的使用样例和具体的解释即可:


#!usr/bin/env python
#encoding:utf-8'''
__Author__:沂水寒城
功能:*args 和 **kwargs
'''def test_func1(*args):'''*args当函数的参数数量不确定的时候可以使用*args,个人理解*args相当于一个大小可变地列表容器,有点类似于C语言中的指针,传给引用即可找到内容,在这里可以使用*+变量的形式来实现内容可变列表的输出'''for index, one_char in enumerate(args):print 'index={0}, one_char={1}'.format(index, one_char)def test_func2(**kwargs):'''**kwargs这个和上面的功能性质是一样的,只是*args没有key的概念,**kwargs加入了可变key的操作这个参数允许你使用未定义的参数名而不会出现KeyError'''for id_num, name in kwargs.items():print '{0}:{1}'.format(id_num,name)def print_dict(one_dict):'''直接输出字典内容'''for id_num, name in one_dict.items():print id_num, nameif __name__ == '__main__':str_list=['沂','水','寒','城','We','Are','Friends']str_dict={'id_num':20123456, 'name':'yishuihancheng'}test_func1(*str_list)test_func2(**str_dict)print '-----------------------------------------------------------'print_dict(str_dict)

结果如下:


index=0, one_char=沂
index=1, one_char=水
index=2, one_char=寒
index=3, one_char=城
index=4, one_char=We
index=5, one_char=Are
index=6, one_char=Friends
id_num:20123456
name:yishuihancheng
-----------------------------------------------------------
id_num 20123456
name yishuihancheng


python可变参数之*args和*kwargs学习回顾相关推荐

  1. python中lambda 表达式(无参数、一个参数、默认参数、可变参数(*args、**kwargs)、带判断的lambda、列表使用lambda)

    如果⼀个函数有⼀个返回值,并且只有⼀句代码,可以使⽤ lambda简化. lambda语法: lambda 参数列表 : 表达式 注意: lambda表达式的参数可有可⽆,函数的参数在lambda表达 ...

  2. python 函数参数列表_Python 函数可变参数列表*args和**kwargs

    许多语言都支持可变参数列表,python也不例外.python的可变参数列表有点不太一样,有两种类型的可变参数列表,一种是元组,一种是字典. 一,元组参数列表: (1)函数定义形式:def func( ...

  3. Python可变传参: *args和**kwargs

    args是参数的数组,kwargs就是当你传入key=value是存储的字典. 请看例子: def test(a,*args,**kwargs): print "a: ",a pr ...

  4. python魔法参数_python中的魔法参数:*args和**kwargs

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

  5. python中的魔法参数:*args和**kwargs

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

  6. (转)python中的参数:*args和**kwargs

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

  7. python可变参数和关键字参数位置_python的位置参数、默认参数、关键字参数、可变参数区别...

    一.位置参数 调用函数时根据函数定义的参数位置来传递参数. #!/usr/bin/env python # coding=utf-8def print_hello(name, sex): sex_di ...

  8. python 可变参数 关键字参数_Python之 可变参数和关键字参数

    原标题:Python之 可变参数和关键字参数 刚开始接触 python 的时候,对 python 中的 *wargs (可变参数) 和 **kwargs (关键字参数)的理解不是很透彻,看了一下 &l ...

  9. python可变参数报错_Python之可变参数,*参数,**参数,以及传入*参数,进行解包...

    1.定义了一个需要两个参数的函数 def print_str(first, second): print first print second if __name__ == "__main_ ...

  10. Python可变参数

    在Python函数中,还可以定义可变参数.顾名思义,可变参数就是传入的参数个数是可变的,可以是1个.2个到任意个,还可以是0个.以数学题为例子,给定一组数字a,b,c--,请计算a2 + b2 + c ...

最新文章

  1. 用Python和OpenCV创建一个图片搜索引擎的完整指南
  2. OpenCV创建3D直方图
  3. Activity隐式启动IntentFilter
  4. 逼自己学python后,我成了同事眼中的大神
  5. MetaException(message:Hive Schema version 2.1.0 does not match metastore‘s schema version 1.2.0 Meta
  6. c++new时赋初值_C++ Lesson 7:new,delete amp; 类的重用
  7. ASP.NET程序中常用的三十一种代码
  8. flask + websocket实现简单的单聊和群聊
  9. 学Java看这就完事了!javasocket编程例子
  10. 抖音短视频的营销模式
  11. cad没有命令输入框_cad命令输入框没了(CAD 输入命令栏显示在绘图的屏幕上怎么设置)...
  12. css实现循环扩散光圈的效果
  13. 华为太极magisk安装教程_小米手机官方REC装面具(magisk)教程
  14. bandit-Python代码审计工具
  15. 瀚龙广告提供一站式的新型广告模式!大大增加用户体验
  16. 衷心感谢各位给我投的票!
  17. 4星+|《赋能:打造应对不确定性的敏捷团队》:海豹突击队学习伊拉克“基地”组织的组织形式并且最终战胜对方的故事...
  18. java全栈工程师前景,已整理成文档
  19. 无法访问您试图使用的功能所在的网络位置 无法找到vcredist.msi的解决办法
  20. linux Xinetd服务简介

热门文章

  1. Django学习笔记-MySQL
  2. ThymeLeaf的eclipse插件安装
  3. CentOS下的sudo相关配置的总结归纳
  4. 统计Linux服务器连接数
  5. velocity--shiro
  6. 【Java并发性和多线程】竞态条件与临界区
  7. C# ObjectCache、OutputCache缓存
  8. HDU-3401 Trade 单调队列优化DP
  9. UML 类图符号简介-符号 各种关系说明以及举例
  10. 计算机视觉基本研究方向