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

2024-04-20 13:01:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我想得到必选参数和非必选参数的数目。如果有人能帮我我会很高兴的,我有点困在这里了

我试过跟随,我不知道这样做是否正确

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

提前谢谢你的建议


Tags: fromtestimport参数defargreqlike
1条回答
网友
1楼 · 发布于 2024-04-20 13:01:01

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

>>> for param in inspect.signature(Test).parameters.values():
...     print(param.kind, param.default)
...
POSITIONAL_OR_KEYWORD <class 'inspect._empty'>
POSITIONAL_OR_KEYWORD 4

https://docs.python.org/3.4/library/inspect.html#inspect.Parameter

把它转换成你想要的输出(把练习留给你自己去做)相对来说是微不足道的

相关问题 更多 >