0

我是 Python 的相对初学者,我正在尝试使用它来运行一些文档不完整的代码。我的问题是,例如,如何使用交互式 shell 获取函数或类构造函数的可能参数列表。理想情况下,我希望有类似 dir() 的东西,但它不应该列出类成员,而应该列出函数的可能参数名称。

如果不可能,有没有其他方法可以在不查看代码的情况下推断函数参数?

4

2 回答 2

4

使用help(function_object)python 格式化它所知道的关于给定函数的所有内容。

您还可以使用该inspect.getargspec()函数来获取已接受参数的命名元组概述。您也可以将该函数的结果传递给以将inspect.formatargspec()其格式化为 python 函数:

>>> from inspect import getargspec, formatargspec
>>> def demo(foo, bar, eggs='ham'): pass
... 
>>> getargspec(demo)
ArgSpec(args=['foo', 'bar', 'eggs'], varargs=None, keywords=None, defaults=('ham',))
>>> formatargspec(*getargspec(demo))
"(foo, bar, eggs='ham')"

对于上面的示例函数,help(demo)打印:

Help on function demo in module __main__:

demo(foo, bar, eggs='ham')
于 2013-06-30T18:06:43.740 回答
1

你想要inspect.getargspec

>>> import inspect
>>> def foo(bar, baz):
...     pass
... 
>>> inspect.getargspec(foo)
ArgSpec(args=['bar', 'baz'], varargs=None, keywords=None, defaults=None)
于 2013-06-30T18:18:34.600 回答