在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()报告其属性的方式。
谢谢。
答案 0 :(得分:2)
不同于其他语言(Java,C ++),没有"私有" Python中的方法(即不能在定义它们的类之外调用的方法)。因此,任何调用者都可以从任何对象调用内部方法 按照惯例,您不应该调用对象的那些方法,以避免类别未预测到的不必要的后果。程序员。