首页 > 编程语言 >python面向对象编程题——有声书系统

python面向对象编程题——有声书系统

时间:2024-07-29 19:24:34浏览次数:15  
标签:__ 有声书 author python self title book 面向对象编程 def

设计一个图书管理系统,

基类为类Book,要求有书名和作者属性,

由Book类派生子类AudioBook(有声书,需要具有演说者属性),

对于Book和AudioBook进行合理的属性及行为的抽象,

编写图书管理类用于管理图书以及有声图书

class Book:
    def __init__(self, title, author):
        self.title = title
        self.author = author

    def display_info(self):
        print(f"书名: {self.title}, 作者: {self.author}")


class AudioBook(Book):
    def __init__(self, title, author, narrator):
        super().__init__(title, author)  # 调用父类的构造器
        self.narrator = narrator

    def display_info(self):
        # 重写父类的方法以包含演说者信息
        print(f"书名: {self.title}, 作者: {self.author}, 演说者: {self.narrator}")


class Library:
    def __init__(self):
        self.books = []  # 存储所有图书的列表

    def add_book(self, book):
        self.books.append(book)

    def display_all_books(self):
        for book in self.books:
            book.display_info()

        # 示例使用


if __name__ == "__main__":
    lib = Library()
    lib.add_book(Book("Python编程", "张三"))
    lib.add_book(AudioBook("Python编程有声版", "李四", "王五"))
    lib.display_all_books()

标签:__,有声书,author,python,self,title,book,面向对象编程,def
From: https://blog.csdn.net/dudnf/article/details/140779107

相关文章

  • 基于python语言的新闻推荐系统的设计与实现
    目录摘要1绪论1.1选题背景与意义1.2国内外研究现状1.3论文结构与章节安排2系统分析2.1可行性分析2.2系统流程分析2.2.1系统开发流程2.2.2用户登录流程2.2.3系统操作流程2.2.4添加信息流程2.2.5修改信息流程2.2.6删除信息流程2.3 系统......
  • Python装饰器实现Hook类
    背景最近有个新的需求是使用Redmine进行一些提交前后的处理,备忘下一些思路实现思路为了统一代码的路径以及调用方式,封装了一个Hook类,按理来说是可以对所有类似的代码使用的,这里使用了Python装饰器,统一对同一个命名类的进行处理,相当于定义了函数的路由核心代码见下:Hook.pyfro......
  • Python里lambda怎么使用呢?
    `lambda`函数在Python中是一种简洁定义单行小函数的方式。它允许你快速定义一个简单的、可以在需要函数对象的地方使用的匿名函数。`lambda`函数的一般语法如下: ```pythonlambda参数:表达式``` 这里,`参数`是传递给函数的参数,可以有一个或多个,通过逗号分隔;`表达式`......
  • 【python】容器之字典(dict)
    字典(dict)字典是一种可变容器模型,且可存储任意类型对象。字典的每个键值key:value对用冒号分割,每个键值对之间用逗号分割,整个字典包括在花括号{}中,格式如下所示:d={key1:value1,key2:value2}创建字典:Python中创建字典可以使用以下几种方法:1使用花括号{}......
  • 《最新出炉》系列入门篇-Python+Playwright自动化测试-57- 上传文件 - 番外篇
    1.简介前边的三篇文章基本上对文件上传的知识介绍和讲解的差不多了,今天主要是来分享宏哥在文件上传的实际操作中发现的一个问题:input控件和非input控件的上传API对其都可以上传成功。废话不多说直接进入正题。2.项目实战宏哥之前在讲解和分享Java+selenium系列时,将其划分为非in......
  • 【Python机器学习】朴素贝叶斯——使用朴素贝叶斯过滤垃圾邮件
    使用朴素贝叶斯解决一些现实生活中的问题时,需要先从文本内容中得到字符串列表,然后生成词向量。使用朴素贝叶斯对电子邮件进行分类的过程:1、收集数据:提供文本文件2、准备数据:将文本文件解析成词条向量3、分析数据:检查词条确保解析的正确性4、训练算法5、测试算法:构建一个......
  • Python 在PDF中添加、替换、或删除图片
    PDF文件中的图片可以丰富文档内容,提升用户的阅读体验。除了在PDF中添加图片外,有时也需要替换或删除其中的图片,以改进视觉效果或更新信息。本文将提供以下三个示例,介绍如何使用Python操作PDF文件中的图片:Python在PDF中添加图片Python替换PDF中的图片Python删除PDF中的图片......
  • 学精python selenium自动化只要读完这一篇
    第一篇基础案例篇大牛测试出品,视频/代码项目案例请联系作者:2574674466前言:●内卷时代测试人员如何面对?逃避还是提高自己?●为什么要学习selenium?●内功如何修炼学习目标:●学会selenium环境搭建、不同浏览器驱动●虚拟环境与代码异常原因分析●十六大元素定位......
  • [附开题]flask框架的校园疫情安全管理系统设计与实现tsckj(源码+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景自新冠疫情全球爆发以来,校园作为高密度、高流动性的集体生活环境,其疫情防控工作面临着前所未有的挑战。学校师生众多,活动频繁,一旦发生疫情......
  • SCI一区级-python实现VMD-CNN-Transformer锂离子电池剩余寿命预测
    1. 基本介绍使用VMD结合皮尔逊相关系数实现对锂离子电池数据集去噪,消除数据中“容量再生问题”使用CNN-Transformer实现特征提取:利用卷积神经网络(CNN)进行特征提取。然后,利用改进的变压器模型来捕获时间序列中的固有相关性,并将其特征映射到未来的SOH值。采用迭代策略对每个......