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小程序
Aug 15 Python
Python爬取Coursera课程资源的详细过程
Nov 04 Python
python自动12306抢票软件实现代码
Feb 24 Python
python如何在列表、字典中筛选数据
Mar 19 Python
在Mac下使用python实现简单的目录树展示方法
Nov 01 Python
利用Python正则表达式过滤敏感词的方法
Jan 21 Python
使用selenium模拟登录解决滑块验证问题的实现
May 10 Python
python几种常用功能实现代码实例
Dec 25 Python
python里的单引号和双引号的有什么作用
Jun 17 Python
通过实例解析Python文件操作实现步骤
Sep 21 Python
python爬虫判断招聘信息是否存在的实例代码
Nov 20 Python
python自动化之如何利用allure生成测试报告
May 02 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
建立动态的WML站点(三)
2006/10/09 PHP
最令PHP初学者们头痛的十四个问题
2007/01/15 PHP
mysql时区问题
2008/03/26 PHP
深入理解PHP原理之异常机制
2010/08/21 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
php利用新浪接口查询ip获取地理位置示例
2014/01/20 PHP
30个php操作redis常用方法代码例子
2014/07/05 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
javascript的函数
2007/01/31 Javascript
可以文本显示的公告栏的js代码
2007/03/11 Javascript
HTML DOM的nodeType值介绍
2011/03/31 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
vue.js 微信支付前端代码分享
2018/02/10 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
JavaScript随机数的组合问题案例分析
2020/05/16 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
Python SQLite3数据库操作类分享
2014/06/10 Python
详解python的几种标准输出重定向方式
2016/08/15 Python
python跳过第一行快速读取文件内容的实例
2018/07/12 Python
python版本单链表实现代码
2018/09/28 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
Nike荷兰官方网站:Nike.com (NL)
2018/04/19 全球购物
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
违反校纪校规检讨书
2014/02/15 职场文书
小组口号大全
2014/06/09 职场文书
上班迟到检讨书
2014/09/15 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
《称赞》教学反思
2016/02/17 职场文书
Python学习之时间包使用教程详解
2022/03/21 Python