从子类变量访问父类变量

4
以下是我所说的例子:

这里有一个例子:

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__()也无法解决此问题。


问题不准确。您正在尝试从派生类访问基类变量。如果GreenDuck作为成员类嵌套在Duck中,它将是一个子类。 - Iron Attorney
2个回答

4

由于它是一个类常量:

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

2
但是如果我想为我的绿色鸭子定义一个新的大小怎么办?那么我就必须将“Duck.SIZE”更改为只有“SIZE”吗?在小写字母中定义它会使它与“SIZE”一起工作吗? - Charming Robot

1

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接