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实现的简单hangman游戏实例
Jun 28 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
python 简单的多线程链接实现代码
Aug 28 Python
Python实现将16进制字符串转化为ascii字符的方法分析
Jul 21 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
Nov 15 Python
完美解决安装完tensorflow后pip无法使用的问题
Jun 11 Python
tensorflow saver 保存和恢复指定 tensor的实例讲解
Jul 26 Python
Python实现随机取一个矩阵数组的某几行
Nov 26 Python
Python批量启动多线程代码实例
Feb 18 Python
简单了解python调用其他脚本方法实例
Mar 26 Python
Python 利用OpenCV给照片换底色的示例代码
Aug 03 Python
python实现大文本文件分割成多个小文件
Apr 20 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代码DOS造成用光网络带宽
2011/03/01 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
比较全的JS checkbox全选、取消全选、删除功能代码
2008/12/19 Javascript
js 幻灯片的实现
2011/12/06 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
2013/10/17 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
使用js Math.random()函数生成n到m间的随机数字
2014/10/09 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
jQuery实现Tab菜单滚动切换的方法
2015/09/21 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
2016/09/05 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
vue cli 全面解析
2018/02/28 Javascript
jQuery简单判断值是否存在于数组中的方法示例
2018/04/17 jQuery
node实现的爬虫功能示例
2018/05/04 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
vue项目中引入Sass实例方法
2019/08/27 Javascript
Python创建模块及模块导入的方法
2015/05/27 Python
让Python代码更快运行的5种方法
2015/06/21 Python
python实现飞机大战
2018/09/11 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
python实现打砖块游戏
2020/02/25 Python
python基于socket函数实现端口扫描
2020/05/28 Python
Python __slots__的使用方法
2020/11/15 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
包装类的功能、种类、常用方法
2012/01/27 面试题
怎样写好自我鉴定
2013/12/04 职场文书
党日活动总结
2014/05/07 职场文书
公司承诺书格式
2014/05/21 职场文书
考博导师推荐信范文
2015/03/27 职场文书
大学生入党自传2015
2015/06/26 职场文书
班主任培训研修日志
2015/11/13 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript