同时使用父属性和重写子属性的继承

时间:2018-12-06 05:35:20

标签: python python-3.x inheritance

我正在使用继承。在我的一种方法中,我想同时使用parent属性和重写的child属性。像这样的东西

class Parent(object):
    att = 'parent'

    def my_meth(self):
        return super().att + self.att

class Child(Parent):
    att = 'child'

print(Child().my_meth())

要打印的内容

  

父母子女

但是上面的代码给出了错误;

  

'super'对象没有属性'options'

这可能吗?

2 个答案:

答案 0 :(得分:2)

我想到访问被子类覆盖的父类的静态属性的一种方法是直接在方法中引用父类本身:

class Parent(object):
    att = 'parent'

    def my_meth(self):
        return Parent.att + self.att

class Child(Parent):
    att = 'child'

print(Child().my_meth()) # parentchild

答案 1 :(得分:1)

按照python document的super关键字返回将方法调用委托给类型的父级或同级类的代理对象。您不能将其用于成员变量。