Python:为什么变量遵循MRO

时间:2017-02-24 17:56:45

标签: python variables inheritance

python的新手......为什么方法遵循MRO,但看起来,变量不是

具体而言(格式化......第一次见到这一点):

class C1(object):
  def __init__(self):
    self.value = 1

class C2(C1):
  def __init__(self):
    self.value = 2
    C1.__init__(self)

class C3(C2):
  def __init__(self):
    self.value = 3
    C2.__init__(self)

cc=C3()

cc.value  # or a bunch of other attempts at

无论我尝试什么,我总是在C1中获得self.value的值

如何在C2中获得self.value的值.... C3 ??? 要么 为什么不将所有self.values设置为相同(C1)值
(也许是这样做的;-))

1 个答案:

答案 0 :(得分:0)

这样做,至少在开始时如此。但是你调用super,超类调用中的代码会覆盖以前的值。