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使用simplejson模块解析JSON的方法
Mar 24 Python
Python学习小技巧之利用字典的默认行为
May 20 Python
python3 发送任意文件邮件的实例
Jan 23 Python
Python Tkinter实现简易计算器功能
Jan 30 Python
简单谈谈Python的pycurl模块
Apr 07 Python
Python利用正则表达式实现计算器算法思路解析
Apr 25 Python
python绘制直线的方法
Jun 30 Python
python开启摄像头以及深度学习实现目标检测方法
Aug 03 Python
python Flask 装饰器顺序问题解决
Aug 08 Python
Python中捕获键盘的方式详解
Mar 28 Python
Python通过两个dataframe用for循环求笛卡尔积
Apr 29 Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 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
星际RPG字典
2020/03/04 星际争霸
用PHP制作静态网站的模板框架(一)
2006/10/09 PHP
php URL验证正则表达式
2011/07/19 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
Zend Framework处理Json数据方法详解
2016/12/09 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
JavaScript Event学习第六章 事件的访问
2010/02/07 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
JavaScript高级程序设计(第3版)学习笔记5 js语句
2012/10/11 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
js数组常用操作方法小结(增加,删除,合并,分割等)
2016/08/02 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
python机器学习库常用汇总
2017/11/15 Python
基于Django的ModelForm组件(详解)
2017/12/07 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
python和JavaScript哪个容易上手
2020/06/23 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
网络工程师个人的自我评价范文
2013/10/01 职场文书
高中军训广播稿
2014/01/14 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
师德师风学习材料
2014/12/19 职场文书
检讨书格式
2015/01/23 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
关于Python中进度条的六个实用技巧分享
2022/04/05 Python
python在package下继续嵌套一个package
2022/04/14 Python