是否有一种内置的方法可以在Python中获取规范注释,而不是返回并在类定义中读取它们?具体来说,我试图确定导入模块中的对象有多少和哪种参数。
我在Python文档中找不到对此的答案,如果已经在这里得到解答,我就无法在搜索中找到它。
答案 0 :(得分:6)
>>> from random import randint
>>> help(randint)
Help on method randint in module random:
randint(self, a, b) method of random.Random instance
Return random integer in range [a, b], including both end points.
(END)
http://docs.python.org/2.7/library/functions.html#help
使用自定义类:
>>> class Test(object):
... def __init__(self, smile):
... print(smile)
...
>>> help(Test)
Help on class Test in module __main__:
class Test(__builtin__.object)
| Methods defined here:
|
| __init__(self, smile)
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| __dict__
| dictionary for instance variables (if defined)
|
| __weakref__
| list of weak references to the object (if defined)
(END)
答案 1 :(得分:3)
您还可以使用inspect模块,特别是inspect.getmembers():
inspect.getmembers(object[, predicate])
归还所有成员 按名称排序的(名称,值)对列表中的对象。
示例:
>>> import inspect
>>> class Test(object):
... def __init__(self, smile):
... print(smile)
...
>>> inspect.getmembers(Test, predicate=inspect.ismethod)
[('__init__', <unbound method Test.__init__>)]
答案 2 :(得分:1)
您可以尝试安装ipython交互式shell并使用%pdoc
,%pdef
宏:
%pdoc:打印(或者如果太长时间通过寻呼机运行) 对象的docstring。如果给定的对象是一个类,它将打印 类和构造函数docstrings。
%pdef:打印 任何可调用对象的定义标头。如果对象是 class,打印构造函数信息。