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 20 Python
详解python开发环境搭建
Dec 16 Python
新手如何快速入门Python(菜鸟必看篇)
Jun 10 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
Oct 14 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
python获取服务器响应cookie的实例
Dec 28 Python
PyQt5笔记之弹出窗口大全
Jun 20 Python
Pandas中DataFrame的分组/分割/合并的实现
Jul 16 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
解决python3中os.popen()出错的问题
Nov 19 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Jun 11 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
用session做客户验证时的注意事项
2006/10/09 PHP
php生成短网址示例
2014/05/05 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
ES6新增的math,Number方法
2017/08/06 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
2018/07/26 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
Python整数与Numpy数据溢出问题解决
2019/09/11 Python
django连接mysql数据库及建表操作实例详解
2019/12/10 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
详解Scrapy Redis入门实战
2020/11/18 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
办公室主任职责范文
2013/11/08 职场文书
奥利奥广告词
2014/03/20 职场文书
自我查摆剖析材料
2014/10/11 职场文书
营销计划书范文
2015/01/17 职场文书
文明礼仪倡议书
2015/04/28 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang