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的Flask框架实现视频的流媒体传输
Mar 31 Python
python生成器generator用法实例分析
Jun 04 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
Feb 19 Python
python之消除前缀重命名的方法
Oct 21 Python
python爬取指定微信公众号文章
Dec 20 Python
python对象转字典的两种实现方式示例
Nov 07 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
python列表切片和嵌套列表取值操作详解
Feb 27 Python
使用python实现时间序列白噪声检验方式
Jun 03 Python
Scrapy爬虫文件批量运行的实现
Sep 30 Python
python包的导入方式总结
Mar 02 Python
利用Python+OpenCV三步去除水印
May 28 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 安全过滤函数代码
2011/05/07 PHP
php中in_array函数用法探究
2014/11/25 PHP
PHP生成树的方法
2015/07/28 PHP
PHP命名空间与自动加载类详解
2018/09/04 PHP
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
js触发select onchange事件的小技巧
2014/08/05 Javascript
node.js中的socket.io的广播消息
2014/12/15 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
js实现圆盘记速表
2015/08/03 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
15个常用的jquery代码片段
2015/12/19 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
详解Angularjs 自定义指令中的数据绑定
2018/07/19 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
JS异步处理的进化史深入讲解
2019/08/25 Javascript
layui操作列按钮个数和文字颜色的判断实例
2019/09/11 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
python3 实现的人人影视网站自动签到
2016/06/19 Python
python在非root权限下的安装方法
2018/01/23 Python
python自动发送邮件脚本
2018/06/20 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
python安装pil库方法及代码
2019/06/25 Python
使用Python的turtle模块画国旗
2019/09/24 Python
python使用配置文件过程详解
2019/12/28 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
python TCP包注入方式
2020/05/05 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
采购内勤岗位职责
2015/04/13 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android