Day29.继承介绍

1.继承介绍_什么是继承_继承格式___bases__用法

# 1、什么继承?
# I:继承是一种创建新类的方式,新建的类可称为子类或派生类,父类又可称为基类或超类,子类会遗传父类的属性
# II:需要注意的是:python支持多继承
#                   在Python中,新建的类可以继承一个或多个父类

# 继承格式
class Parent1:                  # 类后面加上(object),可以兼容python2解释器
    x = 111

class Parent2:
    pass

class Sub1(Parent1):            # 单继承
    pass

class Sub2(Parent1, Parent2):   # 多继承
    pass

# __bases__查看继承的父类
print('继承的格式,及__bases__查看继承的父类'.center(40, '-'))
print(Sub1.__bases__)
print(Sub2.__bases__)

2.继承介绍_python2和python3类继承的区别

# 继承格式
class Parent1(object):                  # 类后面加上(object),可以兼容python2解释器
    x = 111

class Parent2(object):
    pass

class Sub1(Parent1):            # 单继承
    pass

class Sub2(Parent1, Parent2):   # 多继承
    pass

print('ps2:在python3中没有继承任何类,会默认继承object类,所以python3中所有的类都是新式类'.center(60, '-'))
print(Parent1.__bases__)
print(Parent2.__bases__)

 

3.继承介绍_单继承案例,子类调用父类中的属性或方法

# 继承格式
class Parent1(object):                  # 类后面加上(object),可以兼容python2解释器
    x = 111

class Parent2(object):
    pass

class Sub1(Parent1):            # 单继承
    pass

class Sub2(Parent1, Parent2):   # 多继承
    pass


print('ps2:在python3中没有继承任何类,会默认继承object类,所以python3中所有的类都是新式类'.center(60, '-'))
print(Parent1.__bases__)
print(Parent2.__bases__)

4.继承介绍_单继承和多继承案例以及多继承的优缺点

# III:python的多继承
#       优点:子类可以同时遗传多个父类的属性,最大限度地重用代码
#       缺点:
#           1. 违背了人的思维习惯:继承表达的是一种什么'是'什么的关系,例:子类Sub2是父类Parent1的,也是父类Parent2的
#           2. 代码可读性会变差
#           3. 不建议使用多继承,又可能会引发菱形问题,扩展性变差,如果真的涉及到一个子类不可避免地要重用多个父类的属性,应该使用Mixins

'''单继承'''
class A:
    x = 111

class B(A):
    pass

class C(B):
    pass

class D(C):
    pass

print('单继承案例'.center(40, '-'))
print(D.x)


'''多继承'''
class A:
    x = 111

class B:
    y = 222

class C:
    z = 333
   
class D(A, B, C):
    pass

print('缺点2,多继承,代码可读性变差'.center(40, '-'))
print(D.x, D.y, D.z)

posted on 2024-06-24 13:31  与太阳肩并肩  阅读(1)  评论(0编辑  收藏  举报

导航