Python函数可变参数定义及其参数传递方式实例详解


Posted in Python onMay 25, 2015

本文实例讲述了Python函数可变参数定义及其参数传递方式。分享给大家供大家参考。具体分析如下:

python中 函数不定参数的定义形式如下:

1、func(*args)

传入的参数为以元组形式存在args中,如:

def func(*args): 
  print args 
>>> func(1,2,3) 
(1, 2, 3) 
>>> func(*[1,2,3]) #这个方式可以直接将一个列表的所有元素当作不定参数
传入(1, 2, 3)

2、func( **kwargs)

传入的参数为以字典形式存在args中,如:

def func(**kwargs): 
  print kwargs 
>>> func(a = 1,b = 2, c = 3) 
{'a': 1, 'c': 3, 'b': 2} 
>>> func(**{'a':1, 'b':2, 'c':3}) #这个方式可以直接将一个字典的所有键值对当作关键字参数传入 
{'a': 1, 'c': 3, 'b': 2}

3、也可以两者混用

func(*args, **kwargs)

传入的顺序必须和定义顺序相同,这里是先不定参数列表,再是关键字参数字典,如:

def func(*args, **kwargs): 
  print args 
  print kwargs 
>>> func(1,2,3) 
(1, 2, 3) 
{} 
>>> func(*[1,2,3]) 
(1, 2, 3) 
{} 
>>> func(a = 1, b = 2, c = 3) 
() 
{'a': 1, 'c': 3, 'b': 2} 
>>> func(**{'a':1, 'b':2, 'c':3}) 
() 
{'a': 1, 'c': 3, 'b': 2} 
>>> func(1,2,3, a = 4, b=5, c=6) 
(1, 2, 3) 
{'a': 4, 'c': 6, 'b': 5}</span> 
#这样跳跃传递是不行的 
>>> func(1,2,3, a=4, b=5, c=6, 7) 
SyntaxError: non-keyword arg after keyword arg

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python实现抓取页面上链接的简单爬虫分享
Jan 21 Python
python3使用urllib模块制作网络爬虫
Apr 08 Python
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
Python找出最小的K个数实例代码
Jan 04 Python
Python3读取Excel数据存入MySQL的方法
May 04 Python
Python解析、提取url关键字的实例详解
Dec 17 Python
Python对象与引用的介绍
Jan 24 Python
python使用minimax算法实现五子棋
Jul 29 Python
Python数据存储之 h5py详解
Dec 26 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 Python
为什么说python适合写爬虫
Jun 11 Python
Python 实现微信自动回复的方法
Sep 11 Python
Python易忽视知识点小结
May 25 #Python
Python中类型关系和继承关系实例详解
May 25 #Python
pymssql数据库操作MSSQL2005实例分析
May 25 #Python
python动态参数用法实例分析
May 25 #Python
Python文件去除注释的方法
May 25 #Python
python提取页面内url列表的方法
May 25 #Python
python实现批量改文件名称的方法
May 25 #Python
You might like
PHP验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
关于图片验证码设计的思考
2007/01/29 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
基于jquery的一个浮动框(扩展性比较好 )
2010/08/27 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
jquery判断滚动条距离顶部的距离方法
2018/09/05 jQuery
js canvas实现橡皮擦效果
2018/12/20 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
如何在面试中手写出javascript节流和防抖函数
2020/10/22 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
Python实现堆排序的方法详解
2016/05/03 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
python datetime中strptime用法详解
2019/08/29 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
pytorch简介
2020/11/11 Python
浅析HTML5中header标签的用法
2016/06/24 HTML / CSS
食堂个人先进事迹
2014/01/22 职场文书
小学生家长评语集锦
2014/01/30 职场文书
幼儿园小班教师寄语
2014/04/03 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
给老婆的检讨书
2015/01/27 职场文书
大学开学感言
2015/08/01 职场文书
2016新党章学习心得体会
2016/01/15 职场文书
JavaScript流程控制(循环)
2021/12/06 Javascript
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis