[英]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.