The following code generates an error:
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() Printing of 'hello' is successful but 'world' generates the following error:
print(self.__bar) AttributeError: 'B' object has no attribute '_A__bar'
I am surprised by this, I would like my parent class to have a method which has access to a private attribute its children are guaranteed to have. Is there some standard way of solving this problem?