是否所有对象都可以使用python魔术方法

时间:2013-12-11 11:48:08

标签: python

我是否正确假设Python中的对象具有所有魔术方法的默认实现(由双下划线包围的方法,例如__init__)?

2 个答案:

答案 0 :(得分:6)

没有

>>> object.__add__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'object' has no attribute '__add__'

其中一些确实有默认实现,例如__init__,但大多数都没有。

答案 1 :(得分:-1)

不,它没有所有魔术功能的默认实现。

仅当所有对象都从公共默认基类继承时才会出现。

有不同的类,这些类的不同实现需要不同的魔术函数。

object.__class__获取班级名称

要查找该对象中的所有功能,您可以执行dir(object)

更多 - http://docs.python.org/release/2.5.2/ref/node33.html