我想在超类A
中定义api,并直接在子类data
中使用B
属性,但是它试图适当地访问__data
中的A
。
我原本希望在输出中看到[4, 5]
class A(object):
def __init__(self):
self.__data = [1, 2, 3]
@property
def data(self):
return self.__data
class B(A):
def __init__(self):
self.__data = [4,5]
b = B()
print b.data
# AttributeError: 'B' object has no attribute '_A__data'
class A(object):
def __init__(self):
self._data = [1, 2, 3]
@property
def data(self):
return self._data
@data.setter
def data(self, value):
self._data = value
class B(A):
def __init__(self):
super(B, self).__init__()
self.data = [4, 5]
b = B()
print(b.data)
# [4, 5]