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实现socket端口重定向示例
Feb 10 Python
Python 字符串操作方法大全
Mar 11 Python
Python break语句详解
Mar 11 Python
PYTHON 中使用 GLOBAL引发的一系列问题
Oct 12 Python
Python探索之静态方法和类方法的区别详解
Oct 27 Python
在mac下查找python包存放路径site-packages的实现方法
Nov 06 Python
python3+django2开发一个简单的人员管理系统过程详解
Jul 23 Python
pycharm创建scrapy项目教程及遇到的坑解析
Aug 15 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
Sep 17 Python
关于python中的xpath解析定位
Mar 06 Python
Keras 中Leaky ReLU等高级激活函数的用法
Jul 05 Python
浅析Python中的套接字编程
Jun 22 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
杏林同学录(一)
2006/10/09 PHP
dedecms中显示数字验证码的修改方法
2007/03/21 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
php调用KyotoTycoon简单实例
2015/04/02 PHP
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
解析WordPress中的post_class与get_post_class函数
2016/01/04 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
php socket通信简单实现
2016/11/18 PHP
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
jquery文档操作wrap()方法实例简述
2015/01/10 Javascript
JS继承用法实例分析
2015/02/05 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
使用AngularJS创建自定义的过滤器的方法
2015/06/18 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
js表单登陆验证示例
2016/10/19 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
2019/04/17 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
JavaScript工具库MyTools详解
2020/01/01 Javascript
python中requests小技巧
2017/05/10 Python
pip命令无法使用的解决方法
2018/06/12 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
python日志logging模块使用方法分析
2019/05/23 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
《列夫托尔斯泰》教学反思
2014/02/10 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
医院护士党的群众路线教育实践活动对照检查材料思想汇报
2014/10/04 职场文书
《牧场之国》教学反思
2016/02/22 职场文书