Python:帮助解释器中的对象

时间:2019-04-27 09:27:29

标签: python-3.x

我想通过解释器获取有关类中标准dunder方法的信息:

为了进入下面的帮助页面,我在解释器中创建一个类:

class Test:
    pass

a = Test()

然后我输入:

help(a)


Help on Test in module __main__ object:

class Test(builtins.object)
 |  Data descriptors defined here:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)
(END)

是否有一种较短的方法可以在解释器中查找此帮助页面,而无需实例化甚至不声明类以获取有关类的标准dunder方法的信息?

1 个答案:

答案 0 :(得分:1)

  

有没有更短的方法...

当然。稍加格式化后,结果如下:

>>> print('\n'.join(dir(object)))
__class__
__delattr__
__dir__
__doc__
__eq__
__format__
__ge__
__getattribute__
__gt__
__hash__
__init__
__init_subclass__
__le__
__lt__
__ne__
__new__
__reduce__
__reduce_ex__
__repr__
__setattr__
__sizeof__
__str__
__subclasshook__

或者您更喜欢这样:

from pprint import pprint as pp
pp(dir(object))

更有趣的是:

import builtins
pp(dir(builtins.object))

为简洁起见,从帮助文本中删除了“常用” dunder方法。 如您所见,def可以附加粘贴__dict____weakref__。 您的Test和其父类之间的最大区别是位置:

>>> Test.__module__
'__main__'