Mik*_*lla 4 python oop inheritance class
以下代码生成错误:
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()
Run Code Online (Sandbox Code Playgroud)
打印'hello'成功,但'world'会产生以下错误:
print(self.__bar)
Run Code Online (Sandbox Code Playgroud)
我对此感到惊讶,我希望我的父类有一个方法可以访问其子级保证拥有的私有属性.有没有一些解决这个问题的标准方法?
附加问题:因此,如果我对一个属性使用单个下划线,那么从另一个对象使用它是不对的?是一个下划线说"我会使用这个,但用户不应该"或甚至开发人员将其视为私有.这段代码是不好的风格:
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()
Run Code Online (Sandbox Code Playgroud)