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中的startswith和endswith函数使用实例
Aug 25 Python
Python安装图文教程 Pycharm安装教程
Mar 27 Python
python socket网络编程之粘包问题详解
Apr 28 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
Nov 06 Python
对python自动生成接口测试的示例讲解
Nov 30 Python
Python判断变量名是否合法的方法示例
Jan 28 Python
Python3中编码与解码之Unicode与bytes的讲解
Feb 28 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
MxNet预训练模型到Pytorch模型的转换方式
May 25 Python
Python requests及aiohttp速度对比代码实例
Jul 16 Python
Python logging自定义字段输出及打印颜色
Nov 30 Python
pycharm 使用anaconda为默认环境的操作
Feb 05 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
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
解析PHP自带的进位制之间的转换函数
2013/06/08 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
jquery实现拖动效果
2016/08/10 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
2016/12/31 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
bootstrap手风琴折叠示例代码分享
2017/05/22 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
Vue请求java服务端并返回数据代码实例
2019/11/28 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
深入学习Python中的上下文管理器与else块
2017/08/27 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
Python爬虫设置代理IP的方法(爬虫技巧)
2018/03/04 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
基于python的Paxos算法实现
2019/07/03 Python
django使用xadmin的全局配置详解
2019/11/15 Python
哪些是python中web开发框架
2020/06/17 Python
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
环境科学专业大学生自荐信格式
2013/09/21 职场文书
生产车间班组长岗位职责
2014/01/06 职场文书
安全协议书范本
2014/04/21 职场文书
道德演讲稿
2014/05/21 职场文书
消防安全承诺书
2014/05/22 职场文书
英语教师自荐信
2014/05/26 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
法院授权委托书范文
2014/08/02 职场文书
介绍信样本
2015/01/31 职场文书
小学数学国培研修日志
2015/11/13 职场文书
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫