# 2.super的使用:
# 定义一个类A, 里面又一个方法print_info
# 定义一个类B, 里边有一个方法print_info和一个方法say_something
# 定义一个类C, 里边有一个方法say_something
# 定义一个类D, 里边有一个方法print_info和一个方法say_something
# 定义一个类E,继承类A, 类B, 类C,类D
class A:
def print_info(self):
print("A")
class B:
def print_info(self):
print("B")
def say_something(self):
print("say B")
class C:
def say_something(self):
print("say C")
class D:
def print_info(self):
print("D")
def say_something(self):
print("say D")
class E(A, B, C, D):
def print_info(self):
# super(E, self).print_info()
# 利用super,让执行print_info时调用B中print_info
# super(A, self).print_info()
# 利用super, 让执行print_info和say_something时调用D中print_info和say_something
super(C, self).print_info()
def say_something(self):
# super(E, self).say_something()
# 利用super, 让执行say_something时调用C中say_something
# super(B, self).say_something()
# 利用super, 让执行print_info和say_something时调用D中print_info和say_something
super(C, self).say_something()
pass
# 实例化类E的对象
e = E()
# 执行print_info和say_something方法
e.print_info()
e.say_something()
# 1.定义一个父类:
class A:
# 要求:包含三个对象变量,且其中一个对象变量使用_命名
def __init__(self, a1, a2, _a3):
self.a1 = a1
self.a2 = a2
self._a3 = _a3
# 定义一个方法:命名使用__命名
def __print_fun(self):
print("This is A fun")
# 定义一个子类继承上边的父类:且定义一个和父类方法名相同的方法(__)
class B(A):
def __print_fun(self):
print("This is B fun")
# 实例化子类的对象
b = B(1, 2, 3)
# 访问带_的对象变量
print(b._a3)
# 访问父类中的__xxx方法
b._A__print_fun()
# 访问子类中的__xxx方法
b._B__print_fun()