目录
继承
继承简介
- 继承是一种创建新类的方式,新建的类可称为子类或派生类,父类可称为基类或超类
- python支持多继承,新建的类可以支持一个或多个父类
‘’‘单继承和多继承简单定义’‘’
class Parent1:
pass
class Parent2:
pass
class Sub1(Parent1): #单继承
pass
print(Sub1.__bases__) # 查看自己的父类---->(<class ‘__main__.Parent1’>,)
class Sub2(Parent1,Parent2): # 多继承
pass
print(Sub2.__bases__) # 查看自己的父类---->(<class ‘__main__.Parent1’>, <class ‘__main__.Parent2’>)
经典类与新式类
python学习资源汇总 需要的伙伴自取腾讯文档-在线PDF[这里是图片002]https://docs.qq.com/pdf/DR1doYmNBYUZ3RVNX
在py2中有经典类和新式类的区别:
-
新式类:继承了object类的子类,以及该子类的子类,子子类
-
经典类:没有继承object类的子类,以及该子类的子类,子子类
‘’‘py2中’‘’
class Foo:
pass # 经典类
class Bar(object):
pass # 新式类
注意:在py3中没有继承任何类,默认继承object类,所以python3中都是新式类
‘’‘py3中’‘’
class Foo():
pass
print(Foo.__bases__) # —>(<class ‘object’>,),默认继承object类
class Sub(Foo):
pass
print(Sub.__bases__) # ---->(<class ‘__main__.Foo’>,)
类继承解决了什么问题
- 类解决对象与对象之间代码冗余的问题,子类可以遗传父类的属性
- 继承解决的是类与类之间代码冗余的问题
- object类丰富了代码的功能
示例如下:
‘’‘学生选课系统和老师打分功能’‘’
学生类
class Student():
def __init__(self,name,age,gender,course = None):
self.name = name
self.age = age
self.gender = gender
self.course = course
# 定义一个选课的方法
def choose_course(self,course):
if self.course is None:
self.course = []
self.course.append(course)
print(f"Student choice class —>{self.course}")
教师类
class Tea