python 继承(史上最详细版本)

本文详细介绍了Python中的继承概念,包括单继承、多继承和新式类。通过实例展示了如何创建学生类和教师类,并利用人类类减少代码冗余。还探讨了多继承的优缺点、继承的查找顺序、多继承实现原理以及super()方法的使用。最后提到了Python中类的mro(方法解析顺序)和不同类型的继承查找策略。
摘要由CSDN通过智能技术生成

目录

继承

继承简介

  1. 继承是一种创建新类的方式,新建的类可称为子类或派生类,父类可称为基类或超类
  2. 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值