Python 获取函数中必需参数和非必需参数的数目

Python 获取函数中必需参数和非必需参数的数目,python,function,Python,Function,我想获得所需参数和非参数的数量。如果有人能帮助我,我会非常高兴,我有点困在这里了 我试过跟随,我不知道这是否是正确的方法 from inspect import signature def Test(X, Y = 4): print(X,Y) R = str(signature(Test)) cu = "" for i in R: if i.isalpha(): cu = "".join([cu,i]) print(len(cu)) #Output: 2 (I wou

我想获得所需参数和非参数的数量。如果有人能帮助我,我会非常高兴,我有点困在这里了

我试过跟随,我不知道这是否是正确的方法

from inspect import signature

def Test(X, Y = 4):
print(X,Y)

R = str(signature(Test))
cu = ""
for i in R:
    if i.isalpha():
        cu = "".join([cu,i])
print(len(cu))
#Output: 2 (I would like to have something like req_Arg = 1, non_req_Arg = 1)
我正在使用Py3.0


提前感谢您的建议

通过遍历
inspect.signature(Test).parameters.values()
,可以获取参数的类型以及它是否具有默认值:

>用于inspect.signature(Test).parameters.values()中的参数:
...     打印(param.kind,param.default)
...
位置\或\关键字
位置_或_关键字4
()


将其转换为您所寻找的输出(将练习留给您自己)相对来说比较简单。

您能详细解释一下吗?必需参数和非必需参数是什么意思?您想如何计算它们?我的意思是在函数中使用必需的参数,例如(def(X,Y=4:…),其中X是运行函数所必需的。Y不是,因为它有一个标准变量
>>> for param in inspect.signature(Test).parameters.values():
...     print(param.kind, param.default)
...
POSITIONAL_OR_KEYWORD <class 'inspect._empty'>
POSITIONAL_OR_KEYWORD 4