详解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牛刀小试密码爆破
Feb 03 Python
Python Tkinter GUI编程入门介绍
Mar 10 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
May 16 Python
基于python的图片修复程序(实现水印去除)
Jun 04 Python
flask中的wtforms使用方法
Jul 21 Python
用python写一个定时提醒程序的实现代码
Jul 22 Python
python自动化测试之DDT数据驱动的实现代码
Jul 23 Python
python分布式计算dispy的使用详解
Dec 22 Python
Tensorflow轻松实现XOR运算的方式
Feb 03 Python
Python多进程multiprocessing、进程池用法实例分析
Mar 24 Python
numpy数据类型dtype转换实现
Apr 24 Python
Python 可迭代对象 iterable的具体使用
Aug 07 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中PDO基础教程 入门级
2011/09/04 PHP
Linux下安装oracle客户端并配置php5.3
2014/10/12 PHP
浅谈php冒泡排序
2014/12/30 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
动态加载js的几种方法
2006/10/23 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
JavaScript的继承的封装介绍
2013/10/15 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
js数据类型检测总结
2018/08/05 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
Python实现对比不同字体中的同一字符的显示效果
2015/04/23 Python
Django的数据模型访问多对多键值的方法
2015/07/21 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
python之生成多层json结构的实现
2020/02/27 Python
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
幼儿园秋游活动方案
2014/01/21 职场文书
感恩之星事迹材料
2014/05/03 职场文书
党的生日演讲稿
2014/09/10 职场文书
新员工入职感想
2015/08/07 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技
Python一行代码实现自动发邮件功能
2021/05/30 Python