详解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中编写数据库模块的教程
Apr 29 Python
用Python中的字典来处理索引统计的方法
May 05 Python
Python多线程结合队列下载百度音乐的方法
Jul 27 Python
Python操作mongodb数据库的方法详解
Dec 08 Python
python3射线法判断点是否在多边形内
Jun 28 Python
python常用函数与用法示例
Jul 02 Python
Pandas中resample方法详解
Jul 02 Python
Python Subprocess模块原理及实例
Aug 26 Python
Python列表解析操作实例总结
Feb 26 Python
Tensorflow中的dropout的使用方法
Mar 13 Python
Django通过json格式收集主机信息
May 29 Python
python实现简易自习室座位预约系统
Jun 30 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屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
ucenter通信原理分析
2015/01/09 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
2020/10/29 Javascript
Python 26进制计算实现方法
2015/05/28 Python
python查看微信好友是否删除自己
2016/12/19 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
学习python的前途 python挣钱
2019/02/27 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
Python调用C语言的实现
2019/07/26 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
《木笛》教学反思
2014/03/01 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
开学第一天的感想
2015/08/10 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
2019销售早会主持词
2019/06/27 职场文书
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
2022/04/07 Servers
CSS使用Flex和Grid布局实现3D骰子
2022/08/05 HTML / CSS