我是 Python 的相对初学者,我正在尝试使用它来运行一些文档不完整的代码。我的问题是,例如,如何使用交互式 shell 获取函数或类构造函数的可能参数列表。理想情况下,我希望有类似 dir() 的东西,但它不应该列出类成员,而应该列出函数的可能参数名称。
如果不可能,有没有其他方法可以在不查看代码的情况下推断函数参数?
我是 Python 的相对初学者,我正在尝试使用它来运行一些文档不完整的代码。我的问题是,例如,如何使用交互式 shell 获取函数或类构造函数的可能参数列表。理想情况下,我希望有类似 dir() 的东西,但它不应该列出类成员,而应该列出函数的可能参数名称。
如果不可能,有没有其他方法可以在不查看代码的情况下推断函数参数?
使用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')
你想要inspect.getargspec
:
>>> import inspect
>>> def foo(bar, baz):
... pass
...
>>> inspect.getargspec(foo)
ArgSpec(args=['bar', 'baz'], varargs=None, keywords=None, defaults=None)