Python : *args和**kwargs是什么东东呢?
def foo(*args, **kwargs):print 'args = ', argsprint 'kwargs = ', kwargsprint '---------------------------------------'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 kwargsprint 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/Inbreeze/p/8431819.html
Python : *args和**kwargs是什么东东呢?相关推荐
- python *args和**kwargs以及序列解包
DAY 8. *args和**kwargs *args:多值元组,**kwargs多值字典,他们是python函数传参时两个特殊的参数,args和kwargs并不是强制的,但习惯使用这两个,如果在函数 ...
- python * args和** kwargs的用法
所属网站分类: python基础 > 函数 作者:慧雅 链接: http://www.pythonheidong.com/blog/article/18/ 来源:python黑洞网 www.py ...
- Python - *args and **kwargs
分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击人工智能教程 The syntax is the * and **. The names *args a ...
- python *args和**kwargs详解
一.使用场景 在定义类或函数时,以下场景会用到*args和**kwargs,前者叫位置参数,后者叫关键字参数 不确定传入参数的数量或形式 不关心传入参数的数量或形式(此时该类或函数多作为一个中间件的角 ...
- python args和kwargs
python 参数传递 参数顺序:位置参数->默认参数->可变参数->关键字参数 可变参数和关键字参数有打包和解包的功能,可变参数(*args)将未命名的参数打包成元组类型,(**k ...
- python 中*args 和 **kwargs的区别
*args的用法 当你不确定你的函数里将要传递多少参数时你可以用*args.例如,它可以传递任意数量的参数: def print_everything(*args):for count, thing ...
- Python中*args和**kwargs的区别
https://www.cnblogs.com/yunguoxiaoqiao/p/7626992.html (注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 中秋的夜,微凉, ...
- Python中*args 和**kwargs的用法探讨
当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值.不确定的意思可以是有,有几个,也可以是没有 *args可以当作可容纳多个变量组成的l ...
- Python中的*args和**kwargs是什么?该如何使用?
2020-01-16 12:30:00 全文共2911字,预计学习时长9分钟 来源:Pexels 在编程中,函数就是生命! 作为使用Python的新手--无论是编程新手,还是熟悉另一语言的人--都需要 ...
最新文章
- netty加载html文件的原理,Netty+html聊天室入门
- Two Arrays and Sum of Functions
- qs.parse和qs.stringify
- SAP Fiori Elements 公开课第三单元学习笔记 - OData 和注解深入讲解
- CF56E Domino Principle 树状数组 + 简单dp
- IIS 部署asp.net Core程序注意事项
- r语言liftchart_R语言强大的绘图功能--附数据和代码
- Android 6.0 for X86
- 【BZOJ4378】[POI2015]Logistyka 树状数组
- python3安装scapy_centos 7 安装python3.7 和scapy
- 《数据库原理》— 数据库系统概论第五版习题解析
- 批判性思维_通过批判性反思评估可视化创作系统
- 扫描枪速度测试软件,条码扫描枪怎么测试
- html调色板快捷键,12款web前端最佳调色板工具
- docker安装php拓展
- 2019哪里可以进行高层次人才扶持政策申报?
- 第一篇:阿里数据中台之数据中台顶层设计
- #二维差分# [ssloj 1467] U
- java exchange 日历_如何通过EWS-API 获取所有会议室的日历信息
- 将android程序写入内存,android中将数据写入手机内存和sdcard中的文件