Python函数参数类型及排序原理总结


Posted in Python onDecember 19, 2019

这篇文章主要介绍了Python函数参数类型及排序原理总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Python中函数的参数问题有点复杂,主要是因为参数类型问题导致的情况比较多,下面来分析一下。

参数类型:缺省参数,关键字参数,不定长位置参数,不定长关键字参数。

其实总共可以分为 位置参数和关键字参数,因为位置参数被放在list里面,关键字参数放在dict里面,Python在解读的时候首先处理list,没有遇到关键字就append到list里面,遇到关键字了,就开始做dict直到结束,所以,位置参数必须放在关键字参数前面。

这里总结出三个模型:

1:不存在缺省函数时:

def test(a,*args,c,d=3,**kwargs):
   print(a)
   print(args)
   print(c)
   print(d)
   print(kwargs)
 
 test(1,2,3,4,c=1,d=4,e=11,f=22)

运行结果:

1
(2, 3, 4)
1
4
{'e': 11, 'f': 22}

2:存在缺省参数,参数取默认值,(缺省参数放在*args后面)

def test(a,*args,b=1,c,d=3,**kwargs):
  print(a)
  print(args)
  print(b)
  print(c)
  print(d)
  print(kwargs)

test(1,2,3,4,c=1,d=4,e=11,f=22,h=66)

运行结果:

(2, 3, 4)
1
{'e': 11, 'f': 22, 'h': 66}

3:存在缺省参数,参数不取默认值,(缺省参数放在*args前面)

def test(a,b=1,*args,c,d=3,**kwargs):
  print(a)
  print(b)
  print(args)
  print(c)
  print(d)
  print(kwargs)

test(1,2,3,4,c=1,d=4,e=11,f=22,h=66)

运行结果:

1
2
(3, 4)
1
4
{'f': 22, 'e': 11, 'h': 66}

总结:

从上面也看出来了,其实基本顺序就是

位置参数--->关键字参数,然后就是缺省参数在 *args前后的问题了。
还有一点,前面已经说过,关键字参数被保存为字典类型,也就是无序的,但是 **kwargs 需要放在最后!

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

Python 相关文章推荐
Python实现从订阅源下载图片的方法
Mar 11 Python
介绍Python中的__future__模块
Apr 27 Python
python实现的简单RPG游戏流程实例
Jun 28 Python
5种Python单例模式的实现方式
Jan 14 Python
Python RabbitMQ消息队列实现rpc
May 30 Python
python实现京东秒杀功能
Jul 30 Python
使用python爬取抖音视频列表信息
Jul 15 Python
Python 中的 global 标识对变量作用域的影响
Aug 12 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
Sep 06 Python
Python数据相关系数矩阵和热力图轻松实现教程
Jun 16 Python
Python自动化测试中yaml文件读取操作
Aug 20 Python
python如何构建mock接口服务
Jan 28 Python
python中with语句结合上下文管理器操作详解
Dec 19 #Python
Django中密码的加密、验密、解密操作
Dec 19 #Python
利用OpenCV和Python实现查找图片差异
Dec 19 #Python
Python文本处理简单易懂方法解析
Dec 19 #Python
python类中super() 的使用解析
Dec 19 #Python
在python中计算ssim的方法(与Matlab结果一致)
Dec 19 #Python
用openCV和Python 实现图片对比,并标识出不同点的方式
Dec 19 #Python
You might like
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
PHP实现的同步推荐操作API接口案例分析
2016/11/30 PHP
Yii框架函数简单用法分析
2019/09/09 PHP
js的逻辑运算符 ||
2010/05/31 Javascript
20行代码实现的一个CSS覆盖率测试脚本
2013/07/07 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
angular和BootStrap3实现购物车功能
2017/01/25 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
js编写简易的计算器
2020/07/29 Javascript
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
Python检测QQ在线状态的方法
2015/05/09 Python
python的else子句使用指南
2016/02/27 Python
简述:我为什么选择Python而不是Matlab和R语言
2017/11/14 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
pandas DataFrame运算的实现
2020/06/14 Python
电气工程和自动化自荐信范文
2013/12/25 职场文书
成考报名单位证明范本
2014/01/16 职场文书
给水工程专业毕业生自荐信
2014/01/28 职场文书
我为自己代言广告词
2014/03/18 职场文书
商务日语专业毕业生自荐信
2014/03/27 职场文书
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
台风停课通知
2015/04/24 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
MySQL空间数据存储及函数
2021/09/25 MySQL