我们在python中从某父类继承子类时,可以在子类中对父类的数据域和方法操作,但是当该数据域或方法为私有时(有双下划线作为前缀),应注意调用格式如下:
子类调用父类私有数据域:self._父类名+私有数据域名
子类调用父类私有方法:self._父类名+私有方法名
代码如下:
class aa: # 定义父类aa
def __init__(self):
self.__u = 10 # 父类私有数据域
def __m1(self): # 父类私有方法
self.__u += 1
print(self.__u)
class bb(aa): # 定义子类bb
def m2(self): # 访问父类私有数据域
self._aa__u = -10
print(self._aa__u)
def m3(self): # 访问父类私有方法
self._aa__m1()
p = bb()
p.m3() # 打印11
p.m2() # 打印-10