0

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

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

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

谢谢

4

3 回答 3

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
于 2013-08-22T04:29:08.363 回答
0

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

我猜这不是你问题的真正答案,但在某些情况下你可以不使用 init,(如果你认为“不使用它”作为它的用途,那么我确实回答了部分问题?)

于 2013-08-22T07:38:33.940 回答
0
Class Example:

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

我不是 python 专家,并且承认init函数可能还有其他用途,但在我看来,它看起来像构造函数。

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

Dictionary.com - 构造函数
滚动到计算机相关定义的链接底部

于 2013-08-22T05:36:53.067 回答