获取未定义的函数参数

2024-03-28 21:07:48 发布

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

我有这个功能:

def func(a, b, c=1, d=2):
    pass

有了这个:

import inspect
inspect.getargspec(func)

我得到这个结果:

ArgSpec(args=['a', 'b', 'c', 'd'], varargs=None, keywords=None, defaults=(1, 2))

有没有一种更简单的方法可以找到不采用默认值的函数的参数? 有了上面的陈述,我不得不做这样丑陋的事情

ab = args[:-len(defaults)]

检索这些参数。ab现在是['a', 'b']

谢谢。你知道吗

[编辑]更多说明: 我想在函数func之外执行这个检查,而不是在它内部。你知道吗


Tags: 函数import功能none参数abdefargs
1条回答
网友
1楼 · 发布于 2024-03-28 21:07:48

对于使用Signature的Python 3.3及更新版本:

In [15]: [x for x, y in inspect.signature(func).parameters.items() if y.default is y.empty]
Out[15]: ['a', 'b']

相关问题 更多 >