私のコードクラスではA
にプロパティがありますが、クラスB
はそれを継承しません。 @property
は継承をサポートしていますか?それとも私のせいですか?プロパティは継承をサポートしていますか?
class A(object):
def __init__(self):
self._x = 100
@property
def x(self):
return self._x
@x.setter
def x(self, v):
self._x = v
class B(A):
@x.setter
def x(self, v):
self._x = v
エラーメッセージは以下の通りです:
Traceback (most recent call last):
File "test.py", line 9, in <module>
class B(A):
File "test.py", line 10, in B
@x.setter
NameError: name 'x' is not defined
'@Ax.setter'にする必要があります。 'x'はここで名前空間' A'の下にあります。 –
プロパティを継承することはできますが、独立してプロパティを変更することはできません。 'x'を継承してセッターを追加すると、オリジナルもそれを持ちます。あなたは独立したバージョンを得るためにプロパティを 'x'として再度定義することができます。 –
'x'は親機では読み取り専用ですが、子機では読み書きが可能ですか? @KlausD。 – jonrsharpe