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捕捉和模拟鼠标事件的方法
Jun 03 Python
Python 模板引擎的注入问题分析
Jan 01 Python
对Python3中的print函数以及与python2的对比分析
May 02 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
使用Python和百度语音识别生成视频字幕的实现
Apr 09 Python
django 数据库 get_or_create函数返回值是tuple的问题
May 15 Python
Python脚本如何在bilibili中查找弹幕发送者
Jun 04 Python
Python实现文件压缩和解压的示例代码
Aug 12 Python
python快速安装OpenCV的步骤记录
Feb 22 Python
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
May 14 Python
python缺失值的解决方法总结
Jun 09 Python
python中super()函数的理解与基本使用
Aug 30 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
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
新版PHP将向Java靠拢
2006/10/09 PHP
php下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
PHP实现数组array转换成xml的方法
2016/07/19 PHP
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
setTimeout内不支持jquery的选择器的解决方案
2015/04/28 Javascript
js密码强度校验
2015/11/10 Javascript
Javascript技术难点之apply,call与this之间的衔接
2015/12/04 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
2016/10/26 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
2017/01/12 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
微信小程序合法域名配置方法
2019/05/06 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
vue3使用vue-count-to组件的实现
2020/12/25 Vue.js
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
python接入支付宝的实例操作
2020/07/20 Python
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
Theo + George官方网站:都柏林时尚品牌
2019/04/08 全球购物
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
欧洲著名的二手奢侈品网站:Vestiaire Collective
2020/03/07 全球购物
领导干部考察材料
2014/02/08 职场文书
职代会闭幕词
2015/01/28 职场文书
个人总结怎么写
2015/02/26 职场文书
2015年班组长工作总结
2015/04/10 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
高一地理教学工作总结
2015/08/12 职场文书
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android