派生类未在__init__中运行代码

时间:2013-04-04 17:19:14

标签: python

为什么以下代码不会打印"Hello"

# C derives from B, which derives from A, which derives from object
class D(C):
  def _init_(self, *args, **kw):
    print "Hello"


foo = D('some_text')

我在Python 2.7中测试过这个没有运气。

我没有包含CBA的代码,但为什么会这么重要?

我很高兴将他们的定义包括在内,但我不想不必要地使上面的代码复杂化。

2 个答案:

答案 0 :(得分:4)

您需要使用 double 下划线:

def __init__(self, *args, **kw):

方法_init_对Python没有特殊意义,在实例化时不会被调用。

答案 1 :(得分:2)

# C derives from B, which derives from A, which derives from object
class D(C):
  def __init__(self, *args, **kw):
    print "Hello"


foo = D('some_text')

双重下划线。