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转换HTML到Text纯文本的方法
Jan 15 Python
python 把数据 json格式输出的实例代码
Oct 31 Python
Python中异常重试的解决方案详解
May 05 Python
python3使用scrapy生成csv文件代码示例
Dec 28 Python
一条命令解决mac版本python IDLE不能输入中文问题
May 15 Python
基于Pandas读取csv文件Error的总结
Jun 15 Python
使用Python操作FTP实现上传和下载的方法
Apr 01 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
Apr 18 Python
Python闭包和装饰器用法实例详解
May 22 Python
Python封装成可带参数的EXE安装包实例
Aug 24 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
python实现视频压缩功能
Dec 18 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
10条PHP高级技巧[修正版]
2011/08/02 PHP
php 文件缓存函数
2011/10/08 PHP
php操作mongoDB实例分析
2014/12/29 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
python写日志封装类实例
2015/06/28 Python
解决python "No module named pip" 的问题
2018/10/13 Python
python数据处理 根据颜色对图片进行分类的方法
2018/12/08 Python
使用django实现一个代码发布系统
2019/07/18 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
2015/04/24 HTML / CSS
Coach澳大利亚官方网站:美国著名时尚奢侈品牌
2017/05/24 全球购物
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
教师辞职报告范文
2014/01/20 职场文书
七匹狼男装广告词
2014/03/21 职场文书
诉前财产保全担保书
2014/05/20 职场文书
思想品德评语大全
2014/12/31 职场文书
置业顾问岗位职责
2015/02/09 职场文书
利用Python+OpenCV三步去除水印
2021/05/28 Python
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸