Python __init__类与构造函数完全不同

时间:2013-08-22 04:16:17

标签: python constructor init

我想知道某人是否具体使用__init__函数与构造函数不同。

因为我到处读到这不应该被视为构造函数,但是我找不到任何利用这个或者真正说明为什么它如此重要的例子。

因此,如果某人有一些具体的代码显示它,我会很高兴看到它!

谢谢

3 个答案:

答案 0 :(得分:1)

__init__()本身不是构造函数,因为__init__()在尝试构造对象时不一定总是被调用:

class C(object):
  def __new__(cls):
    return 5

  def __init__(self):
    print 'I am a crow! CAW! CAW!'

c = C()
print c

答案 1 :(得分:0)

Class Example:

     def __init__(self,value1,value2):
         self.value1 = value1
         self.value2 = value2

我不是python的专家,并承认 init 函数可能有其他用途,但对我来说看起来像,并且就像构造函数一样。

根据定义,它是一个构造函数:

Dictionary.com - Constructor
滚动到链接底部以进行与计算机相关的定义

答案 2 :(得分:0)

http://docs.python.org/2/reference/datamodel.html 向下滚动到经典类,它表示一个类可以在没有init方法的情况下存在,因此init为类初始化了一些东西,但是在调用init时,该对象已经存在。或者至少就是我对它的理解,因为否则将它命名为__constr__左右可能更符合逻辑,而不是__init__

我猜你的问题不是真正的答案,但你可以在某些情况下不使用init,(如果你考虑"不使用它"作为它的用途,比我回答的部分问题?)