对于*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的区别相关推荐

  1. python 中*args 和 **kwargs的区别

    *args的用法 当你不确定你的函数里将要传递多少参数时你可以用*args.例如,它可以传递任意数量的参数: def print_everything(*args):for count, thing ...

  2. Python中*args和**kwargs的区别

    https://www.cnblogs.com/yunguoxiaoqiao/p/7626992.html (注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 中秋的夜,微凉, ...

  3. python args_Python可变参数*args和**kwargs用法实例小结

    本文实例讲述了Python可变参数*args和**kwargs用法.分享给大家供大家参考,具体如下: 一句话简单概括:当函数的参数不确定的时候就需要用到*args和**kwargs,前者和后者的区别在 ...

  4. [转载] 【python】Python中*args和**kwargs的区别(在Python中如何使用可变长参数列表)

    参考链接: Python中的*args 和 **kwargs 博客已经搬家到"捕获完成": https://www.v2python.com 或者可以叫做,在Python中如何使用 ...

  5. python 之 *args 和 **kwargs的区别

    Python版本:3.10.2 注:因为这里要介绍的是基础语法,网上也有非常多的例子,而且还长一个样,总之,按自己的测试步骤描述一遍吧,有需要的按需取. 传参的时候要是能使用一个特殊的字符串来表示可变 ...

  6. Python 函数的参数传递*args和**kwargs

    Python中函数传递参数的形式主要有以下五种,分别为位置传递,关键字传递,默认值传递,不定参数传递(包裹传递)和解包裹传递.前三种都比较清楚,那么本文来讲一下包裹传递和解包裹传递. args 是 a ...

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

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

  8. python中函数参数*args和**kw的区别

    1.函数与参数(实参) 在python中创建函数是def,创建函数名是def f(),f函数名字,def f(a,b),这里的a,b是两个参数,函数名是自定义的,参数也是自定义,随意就好.看图如下效果 ...

  9. python args kwargs_Python中的args和kwargs

    有时,你会看到python中定义函数的时候带有两个奇怪的参数:*args.**kwargs.如果你曾经想知道它们是干什么的,或者想知道你的IDE为什么在main()函数中定义它们,那么本文可以帮助到你 ...

最新文章

  1. 计算机二级周小丹,亲爱的设计丨周小丹:始终认真,才能保持“天真”
  2. 从AlexNet到BERT:深度学习中那些最重要idea的最简单回顾
  3. 一篇文章读懂麦当劳发行MacCoin是什么
  4. vb for循环 combobox的使用 Print的使用
  5. PHY以太网自动协商原理
  6. int型 判断奇偶_905. 按奇偶排序数组
  7. nginx http server
  8. 经纬张颖「炮轰」扫码点餐;淘宝特价版给拼多多送芒果;Firefox 87.0 发布|极客头条...
  9. 小窍门-在EXECL表中加入下拉列表
  10. SQL Server 中的 JSON 数据
  11. mysql存储脚本实例_Mysql存储过程中游标的用法实例
  12. CMU 11611 -NLP
  13. 《Python编程实践》查漏笔记
  14. 如何去痘痘最快方法简单
  15. matlab 菱形符号,matlab 图形符号
  16. 百度大脑手写文字识别使用攻略
  17. 计算机论文word版,计算机应用基础第05章Word高级应用-毕业论文排版
  18. R语言caret机器学习(一)数据可视化:绘制特征变量图
  19. php详情页图片尺寸,拼多多主图轮播图详情页图片尺寸要求大全
  20. 【VC++游戏开发#九】2D篇 —— 粒子系统(二):平安夜特别版——星光四射

热门文章

  1. 大学计算机uml ppt,南京大学计算机科学与技术系Object-OrientedSoftwareEngineeringUnifiedModelingLanguageUML幻灯片资料.ppt...
  2. word文档在关闭前未保存,如何找回?
  3. tcc803x spi驱动解析
  4. 虚拟驾驶环境搭建(一)
  5. Sophus库:李群和李代数
  6. c语言试题生成系统,C语言在线考试系统——试题生成模块.doc
  7. Java画图软件制作
  8. 克鲁格曼国际经济学:理论与政策第10版课后习题答案
  9. .NetCore如何使用EFCore
  10. 高通研发出无线充电系统