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中的hypot()方法使用简介
May 18 Python
用Python抢过年的火车票附源码
Dec 07 Python
Python Pillow Image Invert
Jan 22 Python
django 微信网页授权认证api的步骤详解
Jul 30 Python
django创建超级用户过程解析
Sep 18 Python
Python collections中的双向队列deque简单介绍详解
Nov 04 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
Feb 29 Python
python实现字符串和数字拼接
Mar 02 Python
Python代码一键转Jar包及Java调用Python新姿势
Mar 10 Python
python中安装django模块的方法
Mar 12 Python
深入了解python列表(LIST)
Jun 08 Python
Python 如何实现访问者模式
Jul 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
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
php一些公用函数的集合
2008/03/27 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
php生成动态验证码gif图片
2015/10/19 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
jquery中JSON的解析方式
2015/03/16 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
javascript实现相同事件名称,不同命名空间的调用方法
2015/06/26 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
Node.js readline 逐行读取、写入文件内容的示例
2018/03/01 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)
2019/06/04 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
浅谈layer弹出层按钮颜色修改方法
2019/09/11 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
JavaScript中layim之整合右键菜单的示例代码
2021/02/06 Javascript
tensorflow识别自己手写数字
2018/03/14 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
PYQT5设置textEdit自动滚屏的方法
2019/06/14 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
华丽的手绘陶瓷:MacKenzie-Childs
2017/02/04 全球购物
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
高二美术教学反思
2014/01/14 职场文书
房屋租赁意向书
2014/04/01 职场文书
推荐信格式范文
2014/05/09 职场文书
个人总结怎么写
2015/02/26 职场文书
物业公司管理制度
2015/08/05 职场文书
古诗之感恩老师
2019/10/24 职场文书
python中取整数的几种方法
2021/11/07 Python
MySQL优化及索引解析
2022/03/17 MySQL