类的继承4

"""
1.一个子类可以继承两个父类:并且继承有相应顺序
"""
class father1:
def a(self):
print("f1_a1")


class father2:
def a(self):
print("f1_a1")

class son(father1,father2):
pass

obj=son()
obj.a()

'''
此时调用a方法打印的结果是:f1_a1;原因是因为继承的时候father1写在了father2之前,所以优先找father1下的a方法;
若想先优先找father2下的a方法则只要继承时候先写father2:class son(father2,father1)即可
'''
"""
#2.当继承的父类写在最前面father1,且当父类father1下没有需要调用的方法,则会去父类father1继承的父父类下找,若一直都没有,则会调用写在第二个的father2下方法
"""
class f:
def a(self):
print(f_a1)
class father1(f):
def a1(self):
print("f1_a1")


class father2:
def a(self):
print("f1_a1")

class son(father1,father2):
pass

obj=son()
obj.a()
"""
此处打印的是f_a1,即是从f下调用的方法
"""

"""
3.当继承的第一个类和第二个类有共同的父类,则对象调用方法的时候,先去第一个类下找,找不到则不会去找共同的父类,会找第二个类,第二个类没有才会从第二个类去找共同的父类;
"""
class father0:
def server(self):
#此处的self为对象obj
print(father0_server)
self.client()#此处的self为对象obj,则执行此方法则按照继承顺序先去father1下找

def client(self):
print(father0_client)

class father1:
def client(self):
print(father1_client)
class son(father1,father0):
pass
obj=son() #建立对象obJ
obj.server() #对象调用server方法

"""
当对象obj调用server方法,先到father1下找发现没有,则到father0下找到进行执行server,当执行到self.client()时,对应也是先去father1下
去找发现存在该方法则进行调用,而不是执行father0下的client();此处需要注意
"""

posted @   土孩子  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示