【发布时间】:2015-05-01 17:36:07
【问题描述】:
我听说python中的__init__函数不是构造函数,它是一个初始化器,实际上__new__函数是构造函数,不同的是__init__函数是在创建对象之后调用的和之前调用的__new__。我对吗?你能更好地解释一下区别吗?为什么我们需要__new__ 和__init__?
【问题讨论】:
-
__init__is 直接等同于其他 OO 语言(尤其是 Java 和 C++)倾向于称为“构造函数”的内容。 AFAIK 这些语言并没有真正有任何直接等同于__new__。但可能正是因为“构造函数”等价物并没有真正构造任何东西(C++ 或 Java 的“构造函数”也没有),Python 倾向于将它们都称为实际的方法名称,而不是调用 either “构造函数”。
标签: python constructor initializer