码迷,mamicode.com
首页 > 编程语言 > 详细

python函数参数类型及其顺序

时间:2019-02-25 00:42:52      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:inspect   提取   种类型   直接   模块   img   很多   没有   位置   

根据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函数参数类型及其顺序

标签:inspect   提取   种类型   直接   模块   img   很多   没有   位置   

原文地址:https://www.cnblogs.com/sheshouxin/p/10428593.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!