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 相关文章推荐
浅析AST抽象语法树及Python代码实现
Jun 06 Python
关于numpy中np.nonzero()函数用法的详解
Feb 07 Python
详解Python之数据序列化(json、pickle、shelve)
Mar 30 Python
Python 反转字符串(reverse)的方法小结
Feb 20 Python
python3+PyQt5实现拖放功能
Apr 24 Python
python3 打开外部程序及关闭的示例
Nov 06 Python
Django REST framework 分页的实现代码
Jun 19 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
Aug 06 Python
快速解决docker-py api版本不兼容的问题
Aug 30 Python
Django 返回json数据的实现示例
Mar 05 Python
python自定义函数def的应用详解
Jun 03 Python
python两种注释用法的示例
Oct 09 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
phpExcel导出大量数据出现内存溢出错误的解决方法
2013/02/28 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
php中实现字符串翻转的方法
2017/02/22 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
juqery 学习之四 筛选过滤
2010/11/30 Javascript
输入框的字数时时统计—关于 onpropertychange 和 oninput 使用
2011/10/21 Javascript
使用javascript插入样式
2016/03/14 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
使用js实现单链解决前端队列问题的方法
2020/02/03 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
2020/09/08 Javascript
Python实现八大排序算法
2016/08/13 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
详解python-图像处理(映射变换)
2019/03/22 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
python实现UDP协议下的文件传输
2020/03/20 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
Python 日期与时间转换的方法
2020/08/01 Python
pytorch 计算Parameter和FLOP的操作
2021/03/04 Python
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
英国电子专家:maplin
2019/09/04 全球购物
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
2015年新农合工作总结
2015/03/30 职场文书
机关工会工作总结2015
2015/05/26 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
gojs实现蚂蚁线动画效果
2022/02/18 Javascript