簡體   English   中英

在python中更改隱藏的繼承屬性

[英]Changing hidden inherited attributes in python

我有一個子類,我希望覆蓋父類的屬性。 問題是這個屬性被包裝在一個 getter 中,所以要改變它,我必須訪問一個帶下划線的變量——因此打破了 Python 中的“下划線 => 私有”約定。 下面的最小工作示例。

class A:
    _x = "AxA"

    @property
    def x(self):
        return self._x


class B(A):
    _x = "BxB"  # seems non-pythonic


if __name__=="__main__":
    b = B()
    print(b.x)  # prints "BxB"

要清楚上面的代碼是有效的,它看起來不是很pythonic。 有沒有更好的方法來實現上述?

您要覆蓋的屬性是x ,所以覆蓋x

class B(A):
    @property
    def x(self):
        return "BxB"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM