python学习笔记:第八章继承与超类

这篇具有很好参考价值的文章主要介绍了python学习笔记:第八章继承与超类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

与java类似,继承的出现是为了提高代码的重复利用率,避免多次输入同样的代码。而超类就是java中的父类。

1.继承

要指定超类,可在定义类时,在class语句中的类名后加上超类名

  • 基类就是超类,派生类就是子类

格式文章来源地址https://www.toymoban.com/news/detail-554504.html

class Dog:   # 
	pass

class Bobo(Dog):  # Dog类的子类
	pass

子类会

  • 重新定义重写超类方法init
  • 继承超类的方法,无需再次编写
class Dog:
    def __init__(self):
        print('wang!!!')
    
    def eat(self):
        print('Dog is eating.')
    
class Bobo(Dog):  # 继承Dog
    pass

tom = Bobo()
tom.eat()
> 
wang!!!
Dog is eating.

在子类中进行重写

class Dog:
    def __init__(self):
        print('wang!!!')
    
    def eat(self):
        print('Dog is eating.')
    
class Bobo(Dog):
    def __init__(self):
        print('Bobo is wang!')

    def eat(self):
        print('Bobo is eating.')

tom = Bobo()
tom.eat()
>
Bobo is wang!
Bobo is eating.

1.1查找一个类的子类和基类

  • issubclass 确定一个类是否是另一个类的子类
issubclass(Bobo, Dog)  # 子类 超类
> True
issubclass(Dog, Bobo)
> False
  • 已知一个类,想知道它的基类,访问特殊属性 __bases__
print(Bobo.__bases__)
> (<class '__main__.Dog'>,)
  • isinstance 确定创建的对象是否是特定类的实例

    创建子类的实例,这个对象同时也是其基类的实例

class Dog:
    pass
    
class Bobo(Dog):
    pass

tom = Bobo()

print(isinstance(tom, Bobo))
print(isinstance(tom, Dog))
>
True
True
  • 使用属性__class__ 可以知道该实例属于哪个类
print(tom.__class__)
> <class '__main__.Bobo'>

1.2 多个超类

尽量避免使用

格式

class A:
	pass
class B:
	pass

class C(A, B):  # 同时继承A和B
	pass 

1.3接口

接口这一概念与多态相关。实际上,python中没有与java相对应的接口。需要特定的模块来实现

1.4 抽象基类

抽象类不能(不应该)被实例化,用于定义子类应该实现的一些抽象方法。

格式

from abc import ABC, abstractmethod
class 类名(ABC):  # 继承ABC类
	@abstractmethod   # 标记为抽象方法,在子类中必须实现
	def 方法名(self):
		pass
from abc import ABC, abstractmethod

class Dog(ABC):
    @abstractmethod
    def eat(self):
        pass
    
class Bobo(Dog):
    def eat(self):
        print('eating.')

tom = Bobo()
tom.eat()
> eating.

到了这里,关于python学习笔记:第八章继承与超类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python第八章作业(初级)

    任务描述 读取附件是一篇英文短文,请编写程序统计这篇短文前 n 行中每一个英文字母出现的次数,结果按次数降序排列,次数相同时,按字母表顺序输出。若 n 值大于短文行数,输出整篇文章中每一个英文字母出现的次数(大写字母按小写字母统计)。 输入格式 输入一个

    2024年02月06日
    浏览(38)
  • 【头歌-Python】Python第八章作业(初级)

    读取附件是一篇英文短文,请编写程序统计这篇短文前 n 行中每一个英文字母出现的次数,结果按次数降序排列,次数相同时,按字母表顺序输出。若 n 值大于短文行数,输出整篇文章中每一个英文字母出现的次数(大写字母按小写字母统计)。 The Old Man and the Sea.txt 输入一

    2024年02月05日
    浏览(115)
  • 【Rust】Rust学习 第八章常见集合

    Rust 标准库中包含一系列被称为  集合 ( collections )的非常有用的数据结构。大部分其他数据类型都代表一个特定的值,不过集合可以包含多个值。不同于内建的数组和元组类型,这些集合指向的数据是储存在堆上的,这意味着数据的数量不必在编译时就已知,并且还可以随

    2024年02月13日
    浏览(40)
  • 系统集成项目管理工程师 笔记(第八章:项目进度管理)

    项目进度管理包括为管理项目按时完成所需的7个过程,具体为: (1) 规划进度管理 过程:制定政策、程序和文档以管理项目进度。 (2) 定义活动 过程:识别和记录为完成项目可交付成果而需采取的具体行动。 (3) 排列活动顺序 过程:识别和记录项目活动之间的关系。

    2023年04月25日
    浏览(64)
  • 第一阶段-第八章 Python的文件操作

      说明:该文章是学习 黑马程序员 在B站上分享的视频 黑马程序员python教程,8天python从入门到精通 而记录的笔记,笔记来源于本人。 若有侵权,请联系本人删除 。笔记难免可能出现错误或笔误,若读者发现笔记有错误,欢迎在评论里批评指正。此笔记对应的doc文件的百

    2024年02月16日
    浏览(34)
  • 统计学习导论(ISLR) 第八章树模型课后习题

    🌸个人主页:JOJO数据科学 📝个人介绍: 统计学top3 高校统计学硕士在读 💌如果文章对你有帮助,欢迎✌ 关注 、👍 点赞 、✌ 收藏 、👍 订阅 专栏 ✨本文收录于【R语言数据科学】 本系列主要介绍R语言在数据科学领域的应用包括: R语言编程基础、R语言可视化、R语言进

    2024年02月12日
    浏览(35)
  • C++ | 继承(基类,父类,超类),(派生类,子类)

    文章参考:https://blog.csdn.net/war1111886/article/details/8609957 一 .继承中的访问权限关系 1.基类,父类,超类是指被继承的类,派生类,子类是指继承于基类的类.  2.在C++中使用: 冒号表示继承,如class A : public B;表示派生类A从基类B继承而来 3.派生类包含基类的所有

    2024年02月15日
    浏览(40)
  • 第八章:L2JMobius学习 – 游戏服务GameServer讲解

    本章节我们来讲解GameServer服务,首先来查看它的文件结构 接下来,我们还是先研究network网络数据通信部分。 接下来,我们介绍GameServer与玩家客户端之间的通信。当我们启动GameServer服务的时候,他会启动一个NetServer服务类,这个类我们之前已经讲过了。它里面有一个Server

    2024年02月13日
    浏览(39)
  • d2l_第八章学习_现代卷积神经网络

    参考: d2l 研究人员认为: 更大更干净的 数据集 或是稍加改进的特征提取方法,比任何学习算法带来的进步大得多。 认为特征本身应该被学习,即卷积核参数应该是可学习的。 创新点在于GPU与更深的网络,使用ReLU激活函数,Dropout层。 可参考: AlexNet https://blog.csdn.net/qq_4

    2024年02月11日
    浏览(47)
  • (数字图像处理MATLAB+Python)第八章图像复原-第一、二节:图像复原概述和图像退化模型

    图像复原 :在图像生成、记录、传输过程中,由于成像系统、设备或外在的干扰,会导致图像质量下降,称为 图像退化 ,如大气扰动效应、光学系统的像差、物体运动造成的模糊、几何失真等。图像复原是指通过使用图像处理技术来恢复受损图像的原始信息,使其尽可能接

    2024年02月12日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包