从子类变量访问父类变量

时间:2018-08-26 08:19:17

标签: python python-3.x inheritance

这是我的意思的示例:

class Duck:
  SIZE = 'Fat'

class GreenDuck(Duck):
  COLOR = 'Green'
  DESCRIPTION = SIZE + ' and '  + COLOR

>>> alien_duck = GreenDuck()
>>> print(alien_duck.DESCRIPTION)

NameError: name 'SIZE' is not defined 

>>> alien_duck.SIZE
Fat

有没有一种方法可以从类内部访问父级“ size”类变量?

还在GreenDuck类中定义super().__init__()并不能解决问题。

2 个答案:

答案 0 :(得分:2)

因为它是一个类常量:

class GreenDuck(Duck):
    COLOR = 'Green'
    DESCRIPTION = Duck.SIZE + ' and '  + COLOR

答案 1 :(得分:0)

当从另一个类访问变量时,应该使用class.variableName而不是仅仅使用variable name。

如果要访问同一类(父类中也存在)中的变量,则self.variableName可用于引用在当前类的范围内定义的变量。