是否有显示对象规范的Python函数或方法?

时间:2014-03-25 20:48:29

标签: python

是否有一种内置的方法可以在Python中获取规范注释,而不是返回并在类定义中读取它们?具体来说,我试图确定导入模块中的对象有多少和哪种参数。

我在Python文档中找不到对此的答案,如果已经在这里得到解答,我就无法在搜索中找到它。

3 个答案:

答案 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,打印构造函数信息。