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 14 Python
详解Python map函数及Python map()函数的用法
Nov 16 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
Jan 29 Python
python生成九宫格图片
Nov 19 Python
查看python安装路径及pip安装的包列表及路径
Apr 03 Python
python pygame实现方向键控制小球
May 17 Python
PyQt+socket实现远程操作服务器的方法示例
Aug 22 Python
Django模板之基本的 for 循环 和 List内容的显示方式
Mar 31 Python
Python Django form 组件动态从数据库取choices数据实例
May 19 Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 Python
pandas按照列的值排序(某一列或者多列)
Dec 13 Python
利用python实现后端写网页(flask框架)
Feb 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
通过对php一些服务器端特性的配置加强php的安全
2006/10/09 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
php 生成短网址原理及代码
2014/01/23 PHP
PHP程序员基本要求和必备技能
2014/05/09 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
PHP按一定比例压缩图片的方法
2018/10/12 PHP
PHP实现支持CURL字符串证书传输的方法
2019/03/23 PHP
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
原生JS实现图片轮播效果
2016/12/26 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
Python编程中的文件操作攻略
2015/10/16 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
python设置中文界面实例方法
2020/10/27 Python
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
计算机开发个人求职信范文
2013/09/26 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
民间借贷协议书范本
2014/10/01 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
邀请函怎么写
2015/01/30 职场文书
离婚被告代理词
2015/05/23 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS