Python的inspect.getargspec具有内置功能(Python inspect.get

2019-06-26 01:59发布

我试图找出从模块中检索的方法的参数。 我发现了一个inspect一个方便的功能,模块getargspec 。 它适用于我定义一个函数,但是只适用于功能从导入模块不能正常工作。

import math, inspect
def foobar(a,b=11): pass
inspect.getargspec(foobar)  # this works
inspect.getargspec(math.sin) # this doesn't

我会得到这样的错误:

   File "C:\...\Python 2.5\Lib\inspect.py", line 743, in getargspec
     raise TypeError('arg is not a Python function')
 TypeError: arg is not a Python function

inspect.getargspec仅对本地功能设计还是我做错了什么?

Answer 1:

这是不可能得到这样的信息,即是用C而不是用Python实现的功能。

这样做的原因是,有没有办法找出什么参数的方法接受除通过解析(自由格式)文档字符串,因为参数在一个(有点)GETARG样的方式传递 - 也就是说,这是不可能找出什么论据它接受没有实际执行的功能。



Answer 2:

你可以得到这样的功能/方法,几乎​​总是包含相同类型的getargspec信息的文档字符串。 (即PARAM名称,编号则params的,可选的,默认值)。

在你的榜样

import math
math.sin.__doc__

"sin(x)

Return the sine of x (measured in radians)"

不幸的是在运行几个不同的标准。 见什么是标准的Python文档字符串格式?

你可以发现它的标准是在使用,然后抓住信息的方式。 从上面的链接,它看起来像pyment可能是做这一点很有帮助。



文章来源: Python inspect.getargspec with built-in function