我想通过解释器获取有关类中标准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方法的信息?
答案 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__'