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


Posted in Python onAugust 02, 2017

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网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
听歌识曲--用python实现一个音乐检索器的功能
Nov 15 Python
Python3 实现随机生成一组不重复数并按行写入文件
Apr 09 Python
python实现批量图片格式转换
Jun 16 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
Jun 17 Python
Python Web程序搭建简单的Web服务器
Jul 31 Python
Python collections模块使用方法详解
Aug 28 Python
python加载自定义词典实例
Dec 06 Python
基于Python计算圆周率pi代码实例
Mar 25 Python
TensorFLow 数学运算的示例代码
Apr 21 Python
Python threading模块condition原理及运行流程详解
Oct 05 Python
python 基于pygame实现俄罗斯方块
Mar 02 Python
详解Python import方法引入模块的实例
Aug 02 #Python
Python字符串拼接的几种方法整理
Aug 02 #Python
详解 Python 读写XML文件的实例
Aug 02 #Python
Python MD5加密实例详解
Aug 02 #Python
Python 获取当前所在目录的方法详解
Aug 02 #Python
浅谈python中的数字类型与处理工具
Aug 02 #Python
Python实现的快速排序算法详解
Aug 01 #Python
You might like
php 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
CI框架装载器Loader.php源码分析
2014/11/04 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
php成功操作redis cluster集群的实例教程
2019/01/13 PHP
用js实现计算加载页面所用的时间
2010/04/02 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
微信小程序中如何计算距离某个节日还有多少天
2019/07/15 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
Python实现的快速排序算法详解
2017/08/01 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
Python实现分数序列求和
2020/02/25 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
飘柔洗发水广告词
2014/03/14 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
邀请函格式范文
2015/02/02 职场文书
公司捐书倡议书
2015/04/27 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
法律服务所工作总结
2015/08/10 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书
创业计划书之书店
2019/09/10 职场文书
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL
Python实现生活常识解答机器人
2021/06/28 Python