详解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代码(逐级优化)
May 25 Python
Django rest framework工具包简单用法示例
Jul 20 Python
Python django使用多进程连接mysql错误的解决方法
Oct 08 Python
python实现从pdf文件中提取文本,并自动翻译的方法
Nov 28 Python
浅谈python requests 的put, post 请求参数的问题
Jan 02 Python
python使用百度文字识别功能方法详解
Jul 23 Python
pygame编写音乐播放器的实现代码示例
Nov 19 Python
TensorFlow 读取CSV数据的实例
Feb 05 Python
python 在threading中如何处理主进程和子线程的关系
Apr 25 Python
Python:__eq__和__str__函数的使用示例
Sep 26 Python
五分钟学会怎么用python做一个简单的贪吃蛇
Jan 12 Python
Python基础知识学习之类的继承
May 31 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
Home Coffee Roasting
2021/03/03 咖啡文化
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
JavaScript中0和&quot;&quot;比较引发的问题
2016/05/26 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
Vue下的国际化处理方法
2017/12/18 Javascript
vue组件开发之用户无限添加自定义填写表单的方法
2018/08/28 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
深入分析element ScrollBar滚动组件源码
2019/01/22 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
详解在React-Native中持久化redux数据
2019/05/22 Javascript
node-red File读取好保存实例讲解
2019/09/11 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
Python yield 使用方法浅析
2017/05/20 Python
Python连接phoenix的方法示例
2017/09/29 Python
人机交互程序 python实现人机对话
2017/11/14 Python
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
python操作redis方法总结
2018/06/06 Python
python 函数内部修改外部变量的方法
2018/12/18 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
Python虚拟环境venv用法详解
2020/05/25 Python
python中id函数运行方式
2020/07/03 Python
CSS3制作Dropdown下拉菜单的方法
2015/07/18 HTML / CSS
canvas绘制视频封面的方法
2018/02/05 HTML / CSS
丝芙兰香港官网:Sephora香港
2018/03/13 全球购物
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
澳洲本土太阳镜品牌:Quay Australia
2019/07/29 全球购物
2014最新实习证明模板
2014/10/02 职场文书
教师作风建设剖析材料
2014/10/11 职场文书
演讲稿之我的初心我的成长
2019/08/12 职场文书
JUnit5常用注解的使用
2021/07/02 Java/Android