在python3中从child获取父类的atributes

2024-10-02 04:26:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python3中有一些Parent和Clild类,其中有一些atribute,其中一个是另一个atribute的和。你知道吗

父类:

class Parent:
    ATRIBUTE1 = 'dad'
    ATRIBUTE2 = ' good'
    ATRIBUTE3 = ATRIBUTE1 + ATRIBUTE2

儿童班:

class Child(Parent):
    ATRIBUTE1 = 'son'
    ATRIBUTE2 = ' bad'

我只想继承子类中具有相同属性的ATRIBUTE3。你知道吗

预期产量:

>> parent.ATRIBUTE3
'dad good'

>> child.ATRIBUTE3
'son bad'

Tags: childpython3classparent儿童badgoodson
2条回答

你需要一处房产。你知道吗

class Parent:
    ATRIBUTE1 = 'dad'
    ATRIBUTE2 = ' good'

    @property
    def attribute3(self):
        return self.ATRIBUTE1 + self.ATRIBUTE2

现在parent.attribute3child.attribute3将给出您想要的结果。你知道吗

ATTRIBUTE3在类创建时计算,而不是在每次访问时重新计算。因此,您将继承父级的值,而不是公式。你知道吗

如果希望在每次访问时重新计算属性值,可以使用@property

class Parent:
    ATRIBUTE1 = 'dad'
    ATRIBUTE2 = ' good'

    @property
    def ATRIBUTE3(self):
        return self.ATRIBUTE1 + self.ATRIBUTE2

您可以像以前一样访问它(尽管是只读的):

print(child.ATTRIBUTE3)

相关问题 更多 >

    热门问题