详解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操作MySQL数据库的方法分享
May 29 Python
Python字典操作简明总结
Apr 13 Python
Python开发如何在ubuntu 15.10 上配置vim
Jan 25 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
Jul 07 Python
python如何生成各种随机分布图
Aug 27 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
Nov 10 Python
python制作mysql数据迁移脚本
Jan 01 Python
解决python线程卡死的问题
Feb 18 Python
python字符串和常用数据结构知识总结
May 21 Python
python 上下文管理器及自定义原理解析
Nov 19 Python
Python使用Pygame绘制时钟
Nov 29 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生成百度sitemap站点地图类函数实例
2014/10/17 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
2016/05/18 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
Vue递归实现树形菜单方法实例
2018/11/06 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
用python删除java文件头上版权信息的方法
2014/07/31 Python
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
一看就懂得Python的math模块
2018/10/21 Python
python实现二维数组的对角线遍历
2019/03/02 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
Pytorch的mean和std调查实例
2020/01/02 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
医学专业毕业生推荐信
2013/11/14 职场文书
《夸父追日》教学反思
2014/02/26 职场文书
《沉香救母》教学反思
2014/04/19 职场文书
学校安全责任书范本
2014/07/23 职场文书
2014年重阳节敬老活动方案
2014/09/16 职场文书
2014年学生会生活部工作总结
2014/11/07 职场文书
党支部书记岗位职责
2015/02/15 职场文书