我有这个功能:
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
之外进行检查,而不是在函数内部。
答案 0 :(得分:1)
对于Python 3.3及更高版本,使用Signature:
In [15]: [x for x, y in inspect.signature(func).parameters.items() if y.default is y.empty]
Out[15]: ['a', 'b']