详解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解析xml模块封装代码
Feb 07 Python
用Python代码来绘制彭罗斯点阵的教程
Apr 03 Python
使用Python写CUDA程序的方法
Mar 27 Python
python扫描proxy并获取可用代理ip的实例
Aug 07 Python
python实现pdf转换成word/txt纯文本文件
Jun 07 Python
python opencv人脸检测提取及保存方法
Aug 03 Python
Pyinstaller打包.py生成.exe的方法和报错总结
Apr 02 Python
Django后台admin的使用详解
Jul 08 Python
Django更新models数据库结构步骤
Apr 01 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
Apr 10 Python
python录音并调用百度语音识别接口的示例
Dec 01 Python
Python基础之操作MySQL数据库
May 06 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
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
15个小时----从修改程序到自己些程序
2006/10/09 PHP
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
禁止刷新,回退的JS
2006/11/25 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
JavaScript中的对象的extensible属性介绍
2014/12/30 Javascript
jQuery实现手机上输入后隐藏键盘功能
2017/01/04 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
微信小程序如何播放腾讯视频的实现
2019/09/20 Javascript
JavaScript实现放大镜效果代码示例
2020/04/29 Javascript
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python中处理unchecked未捕获异常实例
2015/01/17 Python
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
老生常谈Python进阶之装饰器
2017/05/11 Python
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
python单例模式实例解析
2018/08/28 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
python lambda的使用详解
2021/02/26 Python
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
公安纪律作风整顿剖析材料
2014/10/10 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书
Python OpenCV形态学运算示例详解
2022/04/07 Python