次のコードはエラーを生成します。
class A(object):
def say_something(self):
print(self.foo)
print(self.__bar)
class B(A):
def __init__(self):
self.foo = 'hello'
self.__bar = 'world'
test = B()
test.say_something()
「hello」の出力は成功しますが、「world」は次のエラーを生成します。
print(self.__bar)
AttributeError: 'B' オブジェクトには属性 '_A__bar' がありません
私はこれに驚いています。親クラスに、その子が持つことが保証されているプライベート属性にアクセスできるメソッドを持たせたいと思っています。この問題を解決する標準的な方法はありますか?