【发布时间】:2017-06-03 03:27:55
【问题描述】:
在 python 中使用dir() 方法时,为什么我返回的某些方法带有下划线?我应该使用这些方法吗?
例如,dir([1,2,3,4,5,6]) 返回:
['__add__',
'__class__',
'__contains__',
'__delattr__',
'__delitem__',
'__delslice__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__getitem__',
'__getslice__',
'__gt__',
'__hash__',
'__iadd__',
'__imul__',
'__init__',
'__iter__',
'__le__',
'__len__',
'__lt__',
'__mul__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__reversed__',
'__rmul__',
'__setattr__',
'__setitem__',
'__setslice__',
'__sizeof__',
'__str__',
'__subclasshook__',
'append',
'count',
'extend',
'index',
'insert',
'pop',
'remove',
'reverse',
'sort']
这些方法中的最后九种是常规使用的方法。
当我查看文档时,我几乎看不到这些方法是什么:
如果对象有一个名为 __dir__() 的方法,该方法将被调用并且必须返回属性列表。这允许实现自定义 __getattr__() 或 __getattribute__() 函数的对象自定义 dir() 报告其属性的方式。
谢谢。
【问题讨论】:
-
阅读罚款documentation。