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 相关文章推荐
20招让你的Python飞起来!
Sep 27 Python
Python Socket编程详细介绍
Mar 23 Python
Python实现接受任意个数参数的函数方法
Apr 21 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
Feb 19 Python
Python使用线程来接收串口数据的示例
Jul 02 Python
树莓派极简安装OpenCv的方法步骤
Oct 10 Python
Python中的延迟绑定原理详解
Oct 11 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
Apr 14 Python
五分钟带你搞懂python 迭代器与生成器
Aug 30 Python
Python解析微信dat文件的方法
Nov 30 Python
理解python中装饰器的作用
Jul 21 Python
http通过StreamingHttpResponse完成连续的数据传输长链接方式
Feb 12 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.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
php中session定期自动清理的方法
2015/11/12 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
PHP实现原比例生成缩略图的方法
2016/02/03 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
关于跨站脚本攻击问题
2011/12/22 Javascript
jquery插件制作 图片走廊 gallery
2012/08/17 Javascript
js 金额格式化来回转换示例
2014/02/23 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
JavaScript使用function定义对象并调用的方法
2015/03/23 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
2015/11/03 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
python新手经常遇到的17个错误分析
2014/07/30 Python
提升Python程序运行效率的6个方法
2015/03/31 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
Python入门_条件控制(详解)
2017/05/16 Python
python中lambda()的用法
2017/11/16 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
Eagle Eyes Optics鹰眼光学:高性能太阳镜
2018/12/07 全球购物
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python