1.python面向对象的继承指的是多个类之间的所属关系,即默认继承父类的所有属性和方法。
2.注意: 当一个类有多个父类的时候,默认使用第一个父类的同名属性和方法。
3.查看某个类的继承关系 : 对象.mro
4.子类调用父类的同名方法和属性
`class A(object):
def init(self):
self.num = 1
def shuzhi(self):
print(f'A类数值为:{self.num}')
class B(object):
def init(self):
self.num = 2
def shuzhi(self):
print(f'B类数值为:{self.num}')
class C(A, B):
def init(self):
self.num = 3
# 如果是先调用了父类的属性和方法,父类属性会覆盖子类属性,故在调用属性前,
# 先调用自己子类的初始化
def shuzhi(self):
self.__init__()
print(f'C类数值为:{self.num}')
# 调用父类方法,但是为保证调用到的也是父类的属性,
# 必须在调用方法前调用父类的初始化
def shuzhi_A(self):
A.__init__(self)
A.shuzhi(self)
def shuzhi_B(self):
B.__init__(self)
B.shuzhi(self)
dx = C()
dx.shuzhi_A()
dx.shuzhi()
dx.shuzhi_B()
`
5 super()可以自动查找父类。调用顺序遵循__mro__类属性的顺序。比较适合单继承使用。
6 私有权限(设置某个实例属性或实例方法)
方法:在属性名和方法名前面加上俩个下划线__。
注意:私有属性和方法只能在类里面访问和修改。
7 获取和修改私有属性值
def get_money(self):
return self.__money
def set_money(self):
self.__money = 500