Python *args和**kwargs用法实例解析


Posted in Python onMarch 02, 2020

一、*args的使用方法

*args 用来将参数打包成tuple给函数体调用

def fun(*arg):
  print(arg,type(arg))
  print(*arg)
fun(1,2,[8,9])
(1, 2, [8, 9]) <class 'tuple'>
2 [8, 9]

并不一定必须是args,也可以是别的,但是官方不建议这样!

args是一个元祖,*号可以将元祖拆分。

二、**kwargs的使用方法

**kwargs 打包关键字参数成dict给函数体调用def fun(**kwarg):

print(kwarg,type(kwarg))
  # print(**kwarg)#TypeError: 'a' is an invalid keyword argument for print()

fun(a=1,b=6)
fun(**{'name':'Peter','gender':'male'})
{'a': 1, 'b': 6} <class 'dict'>
{'name': 'Peter', 'gender': 'male'} <class 'dict'>

kwargs也不是必须的,但是也不推荐改成别的!

注意:参数arg、*args、**kwargs三个参数的位置必须是一定的。必须是(arg,*args,**kwargs)这个顺序,否则程序会报错。

错误示范:

def fun(*args,**kwarg):
  print(args,kwarg,type(kwarg))
  # print(**kwarg)#TypeError: 'a' is an invalid keyword argument for print()
fun(a=6,1,2,3,**{'name':'Peter','gender':'male'})

File "C:/Users/Administrator.SC-201903160419/Desktop/笔记/myrequest.py", line 37
  fun(a=6,1,2,3,**{'name':'Peter','gender':'male'})
      ^
SyntaxError: positional argument follows keyword argument

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
学习python (2)
Oct 31 Python
python采集博客中上传的QQ截图文件
Jul 18 Python
Django实现图片文字同时提交的方法
May 26 Python
解决csv.writer写入文件有多余的空行问题
Jul 06 Python
Python做智能家居温湿度报警系统
Sep 25 Python
python3.6利用pyinstall打包py为exe的操作实例
Oct 31 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
Feb 25 Python
Django如何自定义model创建数据库索引的顺序
Jun 20 Python
selenium中get_cookies()和add_cookie()的用法详解
Jan 06 Python
pytorch模型预测结果与ndarray互转方式
Jan 15 Python
Python如何操作docker redis过程解析
Aug 10 Python
方法汇总:Python 安装第三方库常用
Apr 26 Python
Python通过2种方法输出带颜色字体
Mar 02 #Python
Python实现屏幕录制功能的代码
Mar 02 #Python
python实现录屏功能(亲测好用)
Mar 02 #Python
基于Numba提高python运行效率过程解析
Mar 02 #Python
Python3 assert断言实现原理解析
Mar 02 #Python
Django认证系统user对象实现过程解析
Mar 02 #Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
Mar 02 #Python
You might like
PHP 各种排序算法实现代码
2009/08/20 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
php7性能提升的原因详解
2019/10/13 PHP
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
jquery photoFrame 图片边框美化显示插件
2010/06/28 Javascript
jquery 列表双向选择器之改进版
2013/08/09 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
jquery处理页面弹出层查询数据等待操作实例
2015/03/25 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
2017/01/08 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
jQuery+PHP实现上传裁剪图片
2020/06/29 jQuery
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
学习python (2)
2006/10/31 Python
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
python实现的重启关机程序实例
2014/08/21 Python
python使用urlparse分析网址中域名的方法
2015/04/15 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
Python创建数字列表的示例
2019/11/28 Python
婚礼司仪主持词
2014/03/14 职场文书
聘用意向书范本
2014/04/01 职场文书
机械专业技术员求职信
2014/06/14 职场文书
教师自我剖析材料范文
2014/09/30 职场文书
交通事故协议书范文
2014/10/23 职场文书
学术会议通知范文
2015/04/15 职场文书
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang