Python-类的继承
一、私有方法和私有属性
类的定义中属性和方法前加“__“表示这是一个私有方法/属性,继承的类中不可以父类中的私有方法和私有属性,但如果私有的方法/属性在类的公有方法中调用了,那么继承后依然可以用公有方法,公有方法也可以正常调用私有属性/方法
1 class A: 2 def __init__(self): 3 self.num1 = 100 4 self.__num2 = 200 5 6 def test1(self): 7 print('----test1-----') 8 9 def __test2(self): 10 print('-----test2----') 11 12 def test3(self): 13 self.__test2() 14 print(self.__num2) 15 16 class B(A): 17 def test4(self): 18 self.__test2()
b = B() b.test3() b.test4() b.__test2()
如上的代码中,子类可以调用 test3,但子类中的公有方法 test4 调用了继承父类的私有属性,所以 b.test4() 不能调用,显然 b.__test2() 也是不行的,因为私有的方法无法继承。