详解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快速排序代码实例
Nov 21 Python
python局域网ip扫描示例分享
Apr 03 Python
Python2.x版本中cmp()方法的使用教程
May 14 Python
python开发之thread线程基础实例入门
Nov 11 Python
Django视图之ORM数据库查询操作API的实例
Oct 27 Python
Python基于百度云文字识别API
Dec 13 Python
Python输出\u编码将其转换成中文的实例
Dec 15 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
python3-flask-3将信息写入日志的实操方法
Nov 12 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
Mar 03 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 木马攻击防御技巧
2009/06/13 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
2013/04/10 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
基于Javascript实现返回顶部按钮
2016/02/29 Javascript
JavaScript知识点总结(十)之this关键字
2016/05/31 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
2016/08/01 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
2016/11/09 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
深入浅析Python字符编码
2015/11/12 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
介绍一下游标
2012/01/10 面试题
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
母亲七十大寿答谢词
2014/01/18 职场文书
工地安全检查制度
2014/02/04 职场文书
合同协议书格式
2014/04/18 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
学期个人工作总结
2015/02/13 职场文书
MySQL为数据表建立索引的原则详解
2022/03/03 MySQL