如何读取包含默认参数值的函数签名?
问题内容:
给定一个功能对象,我如何获得其签名?例如,用于:
def myMethod(firt, second, third='something'):
pass
我想得到"myMethod(firt, second, third='something')"
。
问题答案:
import inspect
def foo(a, b, x='blah'):
pass
print(inspect.getargspec(foo))
# ArgSpec(args=['a', 'b', 'x'], varargs=None, keywords=None, defaults=('blah',))
但是,请注意,inspect.getargspec()
自Python 3.0开始不推荐使用。
Python 3.0–
3.4建议inspect.getfullargspec()
。
Python
3.5+建议inspect.signature()
。