python函数中的*args与**kwargs
来源:互联网 发布:java图形界面设计工具 编辑:程序博客网 时间:2024/06/05 03:23
*args
在函数的参数列表中,接受任何多个无名参数。**kwargs
在函数参数列表中,接受类似于a=1这样的参数形成字典{‘a’:1}
注意!
- *args或者**kwargs可以单独使用
- 当二者一起使用时,在参数表中要将*args放在**kwargs前面(*args,**kwargs)
- 在参数列表为(*args,**kwargs)时,在传参时注意将arg的参数放在kwarg前面
一个例子
def func(*args,**kwargs): print('args is :',args) print('kwargs is :',kwargs)if __name__=='__main__': func(1,2,3,4) func(a=1,b=3,c=5) func(3,4,5,'a',t=6)#args is : (1, 2, 3, 4)#kwargs is : {}#args is : ()#kwargs is : {'c': 5, 'a': 1, 'b': 3}#args is : (3, 4, 5, 'a')#kwargs is : {'t': 6}
——————————————————————————————————————————-
最近在看《Effective Python》,得知了一些关于*args更多的知识,更新一下。
1.变长参数在传给函数时,首先要转化成元组。
例如:
def test(*t): print(type(t)) print(t)test(1,2)#output:#<class 'tuple'>#(1,2)
2.另外,可以用*来指定变长参数的范围。在不使用*时,变长参数接受后面所有多余的参数。而使用*指定后,*后的范围为传入的变长参数。
def log(message,*args): print(message) print(','.join(str(x) for x in args[0]))log('hello',*([1,1,1],[2,2,2]))#output#hello#1,1,1#倘若改为for x in args[1]#输出#hello#2,2,2
阅读全文
0 0
- python函数中的*args与**kwargs
- Python中的*args与**kwargs
- python中的列表解析与函数参数*args **kwargs用法
- Python函数*args与**kwargs的用法
- python ----*args与**kwargs
- python 函数的*args,**kwargs
- python 函数的*args,**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- python中的*args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- poj dfs相关之1154 LETTERS
- JAVA调用动态链接库DLL之JNative学习
- android-maven-gradle-plugin
- PL/SQL编程
- 解决springMVC中restful的POST请求时接受json对象转换pojo对象失败问题
- python函数中的*args与**kwargs
- Java集合源码分析
- 使用Java的JNative调用dll动态链接库
- 安卓TLS通讯
- MAC OS X 安装、配置、启动 rabbitMQ
- centOS7下如何搭建memcached+mongodb+jdk+tomcat的基础应用环境
- Unity3D中如何计算场景中的三角面和顶点数
- C++多态
- 为什么要用交叉验证