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发送arp欺骗攻击代码分析
Jan 16 Python
python写的一个文本编辑器
Jan 23 Python
老生常谈Python基础之字符编码
Jun 14 Python
手把手教你python实现SVM算法
Dec 27 Python
TensorFlow深度学习之卷积神经网络CNN
Mar 09 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 Python
pytorch 常用线性函数详解
Jan 15 Python
python同义词替换的实现(jieba分词)
Jan 21 Python
Python解释器及PyCharm工具安装过程
Feb 26 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 Python
Python实现钉钉/企业微信自动打卡的示例代码
Feb 02 Python
使用pandas模块实现数据的标准化操作
May 14 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
Linux下将excel数据导入到mssql数据库中的方法
2010/02/08 PHP
php学习笔记之面向对象
2014/11/08 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
JSON两种结构之对象和数组的理解
2016/07/19 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
2009/11/12 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
javascript实现控制div颜色
2015/07/07 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
javascript断点调试心得分享
2016/04/23 Javascript
AngularJS入门教程引导程序
2016/08/18 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python实现周期性抓取网页内容的方法
2015/11/04 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
python+selenium+Chrome options参数的使用
2020/03/18 Python
python支持多继承吗
2020/06/19 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
百联网上商城:i百联
2017/01/28 全球购物
英国日常交易网站:Wowcher
2018/09/04 全球购物
车间班组长岗位职责
2013/11/13 职场文书
热爱祖国的演讲稿
2014/05/04 职场文书
公司合作协议范文
2014/10/01 职场文书
投标承诺函范文
2015/01/21 职场文书
烟台的海导游词
2015/02/02 职场文书
医学生自荐信范文
2015/03/05 职场文书
MySQL学习必备条件查询数据
2022/03/25 MySQL