根据inspect模块官文文档中关于函数参数类型的相关说明,python函数参数共有五种类型,按顺序分别为:POSITIONAL_ONLY、POSITIONAL_OR_KEYWORD、VAR_POSITIONAL、KEYWORD_ONLY、VAR_KEYWORD。如图:

POSITIONAL_ONLY:参数值必须以位置参数的形式传递。python没有明确的语法来定义POSITIONAL_ONLY类型的参数,但很多内建或扩展模块的函数中常常会接收这种参数类型,实际使用中不多见,这里暂不考虑。

POSITIONAL_OR_KEYWORD:这种类型的参数在函数调用时既可以使用位置传递,也可以使用关键字传递,是最常见的一种参数类型。例如:

上图中的参数a,b都是POSITIONAL_OR_KEYWORD类型,其中b为默认值参数,必须定义在非默认值参数后面。

VAR_POSITIONAL:即 *args 参数,属于收集参数的一种,可以接收0个或多个位置参数。args是一个tuple,函数体可以直接从args中提取传入的参数值。例如:

上图中,*c为VAR_POSITIONAL参数,可传递的参数值类型没有限制。注意:如果函数调用时传递了VAR_POSITIONAL参数,则POSITIONAL_OR_KEYWORD类型参数必须以位置参数的形式传递。

KEYWORD_ONLY:关键字参数,函数调用时必须以关键字的形式传递参数值。例如:

上图中,d,e,f为KEYWORD_ONLY参数。其中e为有默认值的关键字参数,函数调用时,关键字参数间的顺序可以打乱,但必须在位置参数后面。

VAR_KEYWORD:即 **kwargs 参数,属于收集参数的一种,可以接收0个或多个关键字参数。kwargs是一个dict,函数体可以直接从kwargs中提取传入的参数。例如:

上图中,**g为VAR_KEYWORD参数,同样,关键字参数顺序不限,但必须在位置参数后面。

以上。

python函数参数类型及顺序_python函数参数类型及其顺序相关推荐

  1. python函数参数定义顺序_Python函数定义-位置参数-返回值

    原标题:Python函数定义-位置参数-返回值 1 函数介绍 函数在编程语言中就是完成特定功能的一个词句组(代码块),这组语句可以作为一个单位使用,并且给它取一个名字.可以通过函数名在程序的不同地方多 ...

  2. 定义一个没有参数的函数、输出python3次_Python函数参数详解,三天让你掌握python,不再是小白

    原标题:Python函数参数详解,三天让你掌握python,不再是小白 引言 随着程序功能的增多,代码量随之增大,此时仍不加区分地把所有功能的实现代码放到一起,将会使得程序的组织结构不清晰,可读性变差 ...

  3. python函数参数的作用是_python函数参数理解

    1.位置参数 函数调用时,参数赋值按照位置顺序依次赋值. e.g. 1 deffunction(x):2 3return x *x4 5print function(2) 输出结果: 4 1 deff ...

  4. python函数中可变参数的传递方式是_Python函数可变参数定义及其参数传递方式实例详解...

    本文实例讲述了Python函数可变参数定义及其参数传递方式.分享给大家供大家参考.具体分析如下: python中 函数不定参数的定义形式如下: 1.func(*args) 传入的参数为以元组形式存在a ...

  5. python中的星号和乘号_Python 函数中参数前面一个和两个星号(**)的区别

    Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化 脚本( shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发. 在 P ...

  6. python函数参数的作用是_python函数参数的不同

    在运用php.cn/wiki/1514.html" target="_blank">python的过程中,发现当函数参数为list的时候,在函数内部调用list.a ...

  7. python中函数分为哪四类_Python函数参数分类原理详解

    1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号,隔开 案列: # 利用函数的参数,定义一个可以完成任意两个数 ...

  8. python变量作用域搜索顺序_Python函数作用域的查找顺序

    函数作用域的LEGB顺序 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.它们 ...

  9. python采用函数式编程模式吗_Python函数与函数式编程

    1 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创 ...

最新文章

  1. 双重惊喜——Windows Phone Developer Tools初体验
  2. 限定filesize的数据泵导入导出操作案例
  3. Linux配置Java,kafka,Hadoop等环境变量
  4. 回顾2012;展望2013
  5. 618哪家空调最受欢迎?格力奥克斯互撕 友商却笑到最后
  6. golang github.com/go-sql-driver/mysql 遇到的数据库,设置库设计不合理的解决方法
  7. Bitmap和Drawable的互相转换
  8. 瑞星2009网络版-服务器端安装和配置
  9. 计算机老师的专业发展怎么写,高职计算机教师专业发展研究
  10. Mac怎么将文档导出成PDF格式文件
  11. matlab 2017a界面,超详细干货:matlab2017a与 CCS 6.2联调设置
  12. 跑分软件测试原理,SSD跑分的那些事儿,分享一下,测试软件跑分应该怎么看
  13. mac下删除ntfs下的文件垃圾篓清空不干净的解决办法
  14. *p++,*(p++),*++p,(*p)++区别?
  15. 【研报笔记】光大技术择时系列1:基于阻力支撑相对强度(RSRS)的市场择时
  16. 使用prophet库分析航空出行人次规律
  17. 00-线段检测--FLD
  18. 【笔记】unity渲染类名词术语概念总结(30个点)
  19. C#操作Excel表
  20. vue的简单使用3-v-for、v-if、v-show等指令的使用

热门文章

  1. Elemant-UI日期范围的表单验证
  2. CSS3:CSS3 文本效果
  3. 每一次突破都是一种进步
  4. 从客户端(CourseIssueContent=P财务审计师岗位认证招生简章BR...)中检测到有潜在危险的 Request.Form 值。...
  5. ubuntu安装sublime
  6. Tomcat6.0 中数据源的配置
  7. Camera Vision - video surveillance on C#
  8. 在webpack中使用eslint配置(详细教程)-js教程-PHP中文网
  9. nodejs+express整合kindEditor实现图片上传 - 木子丰咪咕晶 - 开源中国
  10. ListableBeanFactory接口