当前位置: 移动技术网 > IT编程>脚本编程>Python > python函数参数类型及其顺序

python函数参数类型及其顺序

2019年02月25日  | 移动技术网IT编程  | 我要评论

天天向上林志玲,胡敬涛,版权符号怎么输入

根据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参数,同样,关键字参数顺序不限,但必须在位置参数后面。

以上。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网