Python参数传递及收集机制原理解析


Posted in Python onJune 05, 2020

python参数传递时,主要有位置参数和关键字参数。

1. 位置参数:顾名思义,参数的位置顺序很重要,因为是直接根据位置赋值的。

def func1(a, b):
  print(a,b) # 位置参数,位置顺序很重要
func1(1,2)

Python参数传递及收集机制原理解析

2. 关键字参数:首先使得位置不那么重要了,毕竟参数一多,有些人记不住位置也很正常;其次更重要的是可以提供初始值。

def func2(c=1, d=2):
  print(c,d) # 关键字参数,1. 使得位置不那么重要;2. 可提供初始值
func2()  #使用初始值
func2(100,200) #关键字参数也可用位置参数的传递形式
func2(c=100,d=200) #变换位置
func2(d=200,c=200)

Python参数传递及收集机制原理解析

3. 位置参数和关键字参数混合时,位置参数必须全部在关键字参数的前面。

def func3(a, b, c=1):
  print(a,b,c) # 混合使用时,位置参数必须在前面,否则程序会不知道位置参数对应的值是什么
func3(1,2,100)
func3(1,2,c=100)

Python参数传递及收集机制原理解析

4. 通过单星号 '*',收集位置参数,形成元组,但使用的时候也是有序的。

p = (1,2,)
def func4(*para): # 存多个参数,位置参数收集形成元组
  print(para)
func4(*p)  #传递的也是元组形式
func4(*(1,2,))

Python参数传递及收集机制原理解析

5. 通过双星号 '**',收集关键字参数,形成字典

arg = {'c':1,'d':2}
def func5(**args): # 存多个参数,关键字参数收集形成字典
  print(args)
  print(args['c'])
func5(**arg)  #传递形式一
func5(**{'c':1,'d':2}) # 二,或者显式传递字典

Python参数传递及收集机制原理解析

6. 位置参数和单星号 '*' 收集参数的混合:单星号 '*' 表示收集没有对应位置参数的其他位置参数

def func6(a, b, *para): # 混合位置参数,*表示收集没有对应位置参数的其他位置参数,即从前排到后,多余的位置参数
  print(a,b)
  print('para:',para)
func6(1,2,3,4,5)

Python参数传递及收集机制原理解析

7. 关键字参数和双星号 '**' 收集参数的混合:同理双星号 '**' 表示收集没有对应关键字参数的其他关键字参数

def func7(c=1, d=2, **args): # 混合关键字参数,**表示收集没有对应关键字参数的其他关键字参数,即多余的关键字参数
  print(c,d)
  print('args:',args)
func7(1,d=2,e=3,f=4)

Python参数传递及收集机制原理解析

8. 位置参数、关键字参数混合单星号收集参数、双星号收集参数:

def func(a, b, c=1, d=2, *ee, **ff): #混合关键字参数和位置参数:*和** 分别收集多余的位置参数和关键字参数
  print(a,b,c,d)
  print(ee) #元组形式使用
  print(ff) #字典形式使用
# func(100,200,300,400,c=500,d=600,e=700,f=800) # TypeError: func() got multiple values for argument 'c',原因是关键字参数也可以按照位置参数传递形式赋值
func(100,200,c=500,d=600,e=700,f=800)
func(100,200,300,400,500,600,e=700,f=800) #从前到后多余的参数分别进入元组(单星号)和字典形式(双星号)

TypeError: func() got multiple values for argument:因为关键字参数也是可以像位置参数那样直接传递的。

Python参数传递及收集机制原理解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中__init__和__new__的区别详解
Jul 09 Python
详解python中requirements.txt的一切
Mar 03 Python
python数据结构之链表详解
Sep 12 Python
win10下Python3.6安装、配置以及pip安装包教程
Oct 01 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
Apr 19 Python
Django实现一对多表模型的跨表查询方法
Dec 18 Python
对python中的try、except、finally 执行顺序详解
Feb 18 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
flask实现验证码并验证功能
Dec 05 Python
python小项目之五子棋游戏
Dec 26 Python
Pytorch实现神经网络的分类方式
Jan 08 Python
Python 绘制可视化折线图
Jul 22 Python
python如何进行矩阵运算
Jun 05 #Python
Opencv求取连通区域重心实例
Jun 04 #Python
Python中zip函数如何使用
Jun 04 #Python
Python中有几个关键字
Jun 04 #Python
Python如何转换字符串大小写
Jun 04 #Python
如何在Python对Excel进行读取
Jun 04 #Python
opencv 查找连通区域 最大面积实例
Jun 04 #Python
You might like
解决php中Cannot send session cache limiter 的问题的方法
2007/04/27 PHP
php 一元分词算法
2009/11/30 PHP
PHP+ajax 无刷新删除数据
2010/02/20 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
2019/06/25 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
比较全的JS checkbox全选、取消全选、删除功能代码
2008/12/19 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
纯js三维数组实现三级联动效果
2017/02/07 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
python的命名规则知识点总结
2019/10/04 Python
python 动态调用函数实例解析
2019/10/21 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
Python单元测试与测试用例简析
2019/11/09 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
印度尼西亚最大的电商平台:Tokopedia(印尼版淘宝)
2017/12/02 全球购物
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
电子专业推荐信范文
2013/11/18 职场文书
物流专业大学的自我评价
2014/01/11 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
经营目标责任书
2015/05/08 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书
共青团优秀团员申请书(范文)
2019/08/15 职场文书