在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() 报告其属性的方式。
谢谢。
与其他语言(Java,C++)不同,Python中没有"私有"方法(即不能在定义它们的类之外调用的方法)。因此,任何调用方都可以从任何对象调用内部方法。
通常,您不应该调用对象的这些方法,以避免类程序员无法预测的不需要的后果。