AttributeError:“ YY”对象没有属性“ xx”

时间:2019-07-24 08:01:56

标签: python class oop

假设我有一个名为YY的类,它是父类(ZZ)的子类,因此YY应该继承ZZ的所有功能和属性。但是我的代码不是这种情况!

class ZZ:
    def __init__(self,xx):
        self.xx=xx


class YY(ZZ,AA):
    def __init__(self, référence,position):
        self.référence=référence
        self.position=position
    def nearest_position(self,matrix,a):
        for w in range (len(matrix)):
            if (matrix[w][2]==self.xx):
                #some codeee

def main():        

   yy=YY('ab',23)
   yy.nearest_position(matrix,('ab',300))

它表示“ YY”对象没有属性“ xx”,但应从ZZ继承xx。我真的很困惑!

1 个答案:

答案 0 :(得分:1)

您必须在父类上调用super(),并传递适当的参数。

例如,如下所示:

class AA:
    pass


class ZZ:
    def __init__(self, xx):
        self.xx = xx


class YY(ZZ, AA):
    def __init__(self, référence, position):
        super().__init__(42)
        self.référence = référence
        self.position = position

    def nearest_position(self, a):
        return f'YOP: {a}'


yy = YY('ab', 23)
print(yy.nearest_position('ab'), yy.xx)

输出:

YOP: ab 42