详解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 17 Python
200行自定义python异步非阻塞Web框架
Mar 15 Python
Python爬取十篇新闻统计TF-IDF
Jan 03 Python
python人民币小写转大写辅助工具
Jun 20 Python
浅谈django三种缓存模式的使用及注意点
Sep 30 Python
python 计算平均平方误差(MSE)的实例
Jun 29 Python
Python 内置函数globals()和locals()对比详解
Dec 23 Python
python 如何实现遗传算法
Sep 22 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
pycharm配置安装autopep8自动规范代码的实现
Mar 02 Python
pytorch中的numel函数用法说明
May 13 Python
python数字图像处理实现图像的形变与缩放
Jun 28 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
星际争霸任务指南——虫族
2020/03/04 星际争霸
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
2015/12/19 PHP
jquery.mobile 共同布局遇到的问题小结
2015/02/10 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
JS实现的不规则TAB选项卡效果代码
2015/09/18 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
2016/05/12 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
jquery.masonry瀑布流效果
2017/05/25 jQuery
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
2018/03/27 Javascript
vue 权限认证token的实现方法
2018/07/17 Javascript
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
解决Python的str强转int时遇到的问题
2018/04/09 Python
Python之读取TXT文件的方法小结
2018/04/27 Python
Python OpenCV处理图像之图像直方图和反向投影
2018/07/10 Python
Python实现八皇后问题示例代码
2018/12/09 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
外贸公司实习自我鉴定
2013/09/24 职场文书
怎样有效的进行自我评价
2013/10/06 职场文书
幼儿园教师工作感言
2014/02/15 职场文书
环保建议书
2014/03/12 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
大学生实习证明
2015/06/16 职场文书
婚宴父母致辞
2015/07/27 职场文书
导游词之凤凰古城
2019/10/22 职场文书
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js