Python函数可变参数定义及其参数传递方式实例详解


Posted in Python onMay 25, 2015

本文实例讲述了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 相关文章推荐
天翼开放平台免费短信验证码接口使用实例
Dec 18 Python
python从入门到精通(DAY 2)
Dec 20 Python
Python中的异常处理相关语句基础学习笔记
Jul 11 Python
Python+tkinter使用40行代码实现计算器功能
Jan 30 Python
python实现本地图片转存并重命名的示例代码
Oct 27 Python
python中的单引号双引号区别知识点总结
Jun 23 Python
Python使用pyautocad+openpyxl处理cad文件示例
Jul 11 Python
django创建简单的页面响应实例教程
Sep 06 Python
Python创建数字列表的示例
Nov 28 Python
Python如何读取、写入CSV数据
Jul 28 Python
Python 字典一个键对应多个值的方法
Sep 29 Python
python实现商品进销存管理系统
May 30 Python
Python易忽视知识点小结
May 25 #Python
Python中类型关系和继承关系实例详解
May 25 #Python
pymssql数据库操作MSSQL2005实例分析
May 25 #Python
python动态参数用法实例分析
May 25 #Python
Python文件去除注释的方法
May 25 #Python
python提取页面内url列表的方法
May 25 #Python
python实现批量改文件名称的方法
May 25 #Python
You might like
php类中private属性继承问题分析
2012/11/01 PHP
php面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
php使用Jpgraph创建折线图效果示例
2017/02/15 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
PHP实现字符串大小写转函数的功能实例
2019/02/06 PHP
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
javascript 得到变量类型的函数
2010/05/19 Javascript
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
javascript 动态创建表格
2015/01/08 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
2016/12/19 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
利用node实现一个批量重命名文件的函数
2017/12/21 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
express express-session的使用小结
2018/12/12 Javascript
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
tensorflow实现KNN识别MNIST
2018/03/12 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
Windows下python3.6.4安装教程
2018/07/31 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
如何理解Python中的变量
2020/06/01 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
区分python中的进程与线程
2020/08/13 Python
HTML5触摸事件演化tap事件介绍
2016/03/25 HTML / CSS
小学数学教学反思
2014/02/02 职场文书
教师师德反思材料
2014/02/15 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
党员年度个人总结
2015/02/14 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
Golang并发操作中常见的读写锁详析
2021/08/30 Golang