python大作战之*args和**kwargs的区别
对于*args和**kwargs在函数中我们可以称之为参数组,但是这两个还是有区别的
1:*args的功能:------接收N个位置参数,转换成元组tuple形式
2:**kwargs的功能------接收N个关键字参数,转换成字典dict形式
3:位置参数一定要在关键字参数之前,也就是(*args,**kwargs)
下面我们直接用例子来解释下:
>>> def test1(x,*args):print(x)print(args)
>>> test1(1,*(2,3,4,5,6))
1
(2, 3, 4, 5, 6)
对于位置参数*args,输出的都是元组形式的结果,另外,如果这样调用也是可以的
>>> test1(1,2,3,4,5)
1
(2, 3, 4, 5)
这里就自动返回元组形式的结果
对于**kwargs位置参数的实例如下:
>>> def test(name,**kwargs):print(name)print(kwargs)
>>> test('TOM',age=19,sex='F')
TOM
{'age': 19, 'sex': 'F'}
从上面就可以看到,kwargs输出以字典形式
对于*args和**kwargs的位置关系,可以从下面的代码看出
>>> def test3(*args,**kwargs):print(args)print(kwargs)
>>> test3(1,2,3,age=19,sex='F')
(1, 2, 3)
{'age': 19, 'sex': 'F'}
这个案例可以体现出位置参数必定要在关键字参数之前
下面我们可以看下位置颠倒之后的结果
>>> test3(age=19,sex='F',1,2,3)
SyntaxError: positional argument follows keyword argument
代码出现异常了,因此可以再次证明位置参数在关键字参数之前的原理
最后,通过这个关键字参数,我们也可以创建一个字典,代码如下:
>>> def test4(**kwargs):return kwargs>>> print(test4(age=19,sex='F'))
{'age': 19, 'sex': 'F'}
我们只要把输出赋给一个变量就行,一个字典便诞生。
python大作战之*args和**kwargs的区别相关推荐
- 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_Python可变参数*args和**kwargs用法实例小结
本文实例讲述了Python可变参数*args和**kwargs用法.分享给大家供大家参考,具体如下: 一句话简单概括:当函数的参数不确定的时候就需要用到*args和**kwargs,前者和后者的区别在 ...
- [转载] 【python】Python中*args和**kwargs的区别(在Python中如何使用可变长参数列表)
参考链接: Python中的*args 和 **kwargs 博客已经搬家到"捕获完成": https://www.v2python.com 或者可以叫做,在Python中如何使用 ...
- python 之 *args 和 **kwargs的区别
Python版本:3.10.2 注:因为这里要介绍的是基础语法,网上也有非常多的例子,而且还长一个样,总之,按自己的测试步骤描述一遍吧,有需要的按需取. 传参的时候要是能使用一个特殊的字符串来表示可变 ...
- Python 函数的参数传递*args和**kwargs
Python中函数传递参数的形式主要有以下五种,分别为位置传递,关键字传递,默认值传递,不定参数传递(包裹传递)和解包裹传递.前三种都比较清楚,那么本文来讲一下包裹传递和解包裹传递. args 是 a ...
- Python可变传参: *args和**kwargs
args是参数的数组,kwargs就是当你传入key=value是存储的字典. 请看例子: def test(a,*args,**kwargs): print "a: ",a pr ...
- python中函数参数*args和**kw的区别
1.函数与参数(实参) 在python中创建函数是def,创建函数名是def f(),f函数名字,def f(a,b),这里的a,b是两个参数,函数名是自定义的,参数也是自定义,随意就好.看图如下效果 ...
- python args kwargs_Python中的args和kwargs
有时,你会看到python中定义函数的时候带有两个奇怪的参数:*args.**kwargs.如果你曾经想知道它们是干什么的,或者想知道你的IDE为什么在main()函数中定义它们,那么本文可以帮助到你 ...
最新文章
- 计算机二级周小丹,亲爱的设计丨周小丹:始终认真,才能保持“天真”
- 从AlexNet到BERT:深度学习中那些最重要idea的最简单回顾
- 一篇文章读懂麦当劳发行MacCoin是什么
- vb for循环 combobox的使用 Print的使用
- PHY以太网自动协商原理
- int型 判断奇偶_905. 按奇偶排序数组
- nginx http server
- 经纬张颖「炮轰」扫码点餐;淘宝特价版给拼多多送芒果;Firefox 87.0 发布|极客头条...
- 小窍门-在EXECL表中加入下拉列表
- SQL Server 中的 JSON 数据
- mysql存储脚本实例_Mysql存储过程中游标的用法实例
- CMU 11611 -NLP
- 《Python编程实践》查漏笔记
- 如何去痘痘最快方法简单
- matlab 菱形符号,matlab 图形符号
- 百度大脑手写文字识别使用攻略
- 计算机论文word版,计算机应用基础第05章Word高级应用-毕业论文排版
- R语言caret机器学习(一)数据可视化:绘制特征变量图
- php详情页图片尺寸,拼多多主图轮播图详情页图片尺寸要求大全
- 【VC++游戏开发#九】2D篇 —— 粒子系统(二):平安夜特别版——星光四射
热门文章
- 大学计算机uml ppt,南京大学计算机科学与技术系Object-OrientedSoftwareEngineeringUnifiedModelingLanguageUML幻灯片资料.ppt...
- word文档在关闭前未保存,如何找回?
- tcc803x spi驱动解析
- 虚拟驾驶环境搭建(一)
- Sophus库:李群和李代数
- c语言试题生成系统,C语言在线考试系统——试题生成模块.doc
- Java画图软件制作
- 克鲁格曼国际经济学:理论与政策第10版课后习题答案
- .NetCore如何使用EFCore
- 高通研发出无线充电系统