python函数参数类型及其顺序
根据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参数,同样,关键字参数顺序不限,但必须在位置参数后面。
以上。
上一篇: 以后送礼,一定要用这样的袋子装礼品
下一篇: 医学院好学生