python--*args和**kwargs可变参数
先来看个例子:
#! /usr/bin/env python #coding=utf-8def 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= {'b': 2, 'c': 3, 'a': 1}
--------------------------------------
args= (1, 2, 3, 4)
kwargs= {'b': 2, 'c': 3, 'a': 1}
--------------------------------------
args= ('a', 1, None)
kwargs= {'b': '2', 'c': 3, 'a': 1}
--------------------------------------
可以看到,这两个是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”。
还有一个很漂亮的用法,就是创建字典:
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)即可创建一个字典了。
转载于:https://www.cnblogs.com/R-bear/p/7743102.html
python--*args和**kwargs可变参数相关推荐
- python中什么是可变参数_详解Python的三种可变参数
详解Python的三种可变参数 可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中, ...
- python可变参数的实验性_详解Python的三种可变参数
可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中,在函数内部会自动认为是一个元组或 ...
- python什么是可变参数_详解Python的三种可变参数
可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中,在函数内部会自动认为是一个元组或 ...
- Python的三种可变参数
初学python没多久,对python中函数的可变参数有点头晕,查阅了stackflow,现总结一下 可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def ...
- python args函数_Python函数参数*args 和**kwargs的用法
args就是所有参数的数组,kwargs就是当你传入key=value是存储的字典,当函数的参数不确定时,可以使用*args 和kwargs,*args 没有key值,kwargs有key值 def ...
- python args函数_Python函数参数*args和**kwargs
#!/usr/bin/env python3#coding: utf-8#File: args_kwargs_demo.py#Author: lxw#Date: 10/9/17 11:16 AM &q ...
- python *args用法_python函数参数*args**kwargs用法实例
#coding=utf8 __author__ = 'Administrator' # 当函数的参数不确定时,可以使用*args和**kwargs.*args没有key值,**kwargs有key值 ...
- python中函数的可变参数_Python中函数的参数定义和可变参数
转自:http://www.cnblogs.com/tqsummer/archive/2011/01/25/1944416.html 刚学用Python的时候,特别是看一些库的源码时,经常会看到fun ...
- python * args和** kwargs的用法
所属网站分类: python基础 > 函数 作者:慧雅 链接: http://www.pythonheidong.com/blog/article/18/ 来源:python黑洞网 www.py ...
最新文章
- jquery getJSON 中对超时Timeout的处理
- vue token 过期处理
- android 加载更多,如何在android中实现加载更多的recyclerview
- UImenuController
- python连接redis sentinel集群
- Apache ab 压力测试工具
- OAuth 授权timestamp refused问题
- Linux操作系统:文件和目录命令
- Spring Aware接口注入
- 顺序查找(Linear Search)
- P3371 单源最短路径【模板】 洛谷
- 你做不到对企业真正有价值,下一个裁员就是你
- 笨方法学python 习题42
- 人工智能中常用的词汇
- QQ空间相册批量下载【原图】
- mysql非常规的中文乱码问题
- ORACLE读取XML
- 华为服务器用户名密码忘记,电脑坏了,腾讯云华为云忘记宝塔面板登陆名和密码怎么办?...
- Win10+NVIDIA TITAN Xp | RTX 2060+Python3.6+TensorFlow_gpu2.1.0+keras2.3.1+cuda10.1+cudnn7.6.5.32记录
- Vue中显示echarts北京公交路线
热门文章
- python多继承_python作用域和多继承
- 天池 在线编程 部门统计(哈希)
- 流式计算的代表:Storm、Flink、Spark Streaming
- LeetCode MySQL 570. 至少有5名直接下属的经理
- 程序员面试金典 - 面试题 05.02. 二进制数转字符串(浮点型 转 二进制小数,乘2取整)
- LeetCode 1103. 分糖果 II
- POJ 3122 分披萨(二分查找)
- Flask基础知识总结
- python 控件叠加_如何将图像应用于控件背景(叠加)
- python各种岗位薪资_python编程语言岗位薪资真不是盖的