有没有Python函数或方法可以显示对象规格?
有没有什么内置的方法可以在Python中获取规范注释,这样就不用回去看类定义里的注释了?具体来说,我想知道从一个导入的模块中创建的对象需要多少个参数,以及这些参数是什么类型。
我在Python的文档里找不到这个答案,如果这里已经有人回答过,我也没能在搜索中找到。
3 个回答
1
你可以试着安装 ipython 这个交互式命令行工具,然后使用 %pdoc
和 %pdef
这两个命令:
%pdoc
: 这个命令会打印出一个对象的文档说明(如果内容太长,它会通过分页器来显示)。如果你给的是一个类,它会同时打印出类和构造函数的文档说明。
%pdef
: 这个命令会打印出任何可调用对象的定义信息。如果对象是一个类,它会打印出构造函数的信息。
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__>)]
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)