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实现的扫雷游戏实例代码
Aug 01 Python
一个超级简单的python web程序
Sep 11 Python
Python利用ansible分发处理任务
Aug 04 Python
python简单读取大文件的方法
Jul 01 Python
Python基于OpenCV实现视频的人脸检测
Jan 23 Python
python使用TensorFlow进行图像处理的方法
Feb 28 Python
Django开发中的日志输出的方法
Jul 02 Python
python 实现求解字符串集的最长公共前缀方法
Jul 20 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
Jan 29 Python
Python with语句和过程抽取思想
Dec 23 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
Jun 29 Python
Python中的min及返回最小值索引的操作
May 10 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
如何实现给定日期的若干天以后的日期
2006/10/09 PHP
最新的php 文件上传模型,支持多文件上传
2009/08/13 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
关于Sphinx创建全文检索的索引介绍
2013/06/25 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
php 生成短网址原理及代码
2014/01/23 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
php通过strpos查找字符串出现位置的方法
2015/03/17 PHP
php实现比较全的数据库操作类
2015/06/18 PHP
php使用GD2绘制几何图形示例
2017/02/15 PHP
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
jQuery MD5加密实现代码
2010/03/15 Javascript
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
javascript+Canvas实现画板功能
2020/06/23 Javascript
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
2018/03/14 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
进修护士自我鉴定
2013/10/14 职场文书
留学自荐信的技巧
2013/10/17 职场文书
大学生活动总结怎么写
2014/04/29 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
2014预备党员批评与自我批评思想汇报
2014/09/20 职场文书