详解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 相关文章推荐
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
python中 chr unichr ord函数的实例详解
Aug 06 Python
Python模拟用户登录验证
Sep 11 Python
python PyTorch参数初始化和Finetune
Feb 11 Python
解决python写入mysql中datetime类型遇到的问题
Jun 21 Python
用Python实现筛选文件脚本的方法
Oct 27 Python
pandas重新生成索引的方法
Nov 06 Python
Python编程深度学习绘图库之matplotlib
Dec 28 Python
在python中用print()输出多个格式化参数的方法
Jul 16 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
Apr 20 Python
基于django 的orm中非主键自增的实现方式
May 18 Python
python安装及变量名介绍详解
Dec 12 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实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
关于svn冲突的解决方法
2013/06/21 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
动态加载js的几种方法
2006/10/23 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
H5手机端多文件上传预览插件
2017/04/21 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
Python里隐藏的“禅”
2014/06/16 Python
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
python链接Oracle数据库的方法
2015/06/28 Python
Python DataFrame.groupby()聚合函数,分组级运算
2018/09/18 Python
关于Python-faker的函数效果一览
2019/11/28 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
python中字典增加和删除使用方法
2020/09/30 Python
python 制作简单的音乐播放器
2020/11/25 Python
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
电钳专业个人求职信
2014/01/04 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
学校少先队工作总结
2015/08/12 职场文书
技术入股协议书
2016/03/22 职场文书