首页 > 编程语言 >【python】抽象基类 from abc import ABC, abstractmethod

【python】抽象基类 from abc import ABC, abstractmethod

时间:2022-12-28 15:01:09浏览次数:39  
标签:abc abstractmethod python 子类 ABC animal pass

abc模块作用

Python本身不提供抽象类和接口机制,要想实现抽象类,可以借助abc模块。ABC是Abstract Base Class的缩写。

假设我们定义一些抽象方法,然后子类继承的时候必须要重写这些方法。出于这个目标,我们就要用到abc这个包。@abstractmethod表示这个方法是一个抽象方法,子类必须重写。

同时,由于有性质:抽象类是用来继承的,而不是用来实例化的。此时,如果我们实例化animal,将报错

from abc import ABC, abstractmethod

class animal(ABC): 
    @abstractmethod
    def speak(self):
        pass

如果实现一个子类Cat,子类必须重写speak方法

class Cat(animal):
    def speak(self):
        pass
    def other(self):
        pass

 

标签:abc,abstractmethod,python,子类,ABC,animal,pass
From: https://www.cnblogs.com/AliceYing/p/17010148.html

相关文章

  • 逆向工程 Python 逆向
    逆向工程Python逆向Salarypython逆向https://github.com/SKPrimin/HomeWork/ReverseEngineering/lab1_python(选做)运行Salary.pyc,要求输出flag代表成功。直接运行......
  • python的list的用法
    #ReadMe#本工具是根据用户选择的条目来打印该列表下的内容#例如选择“北京”就会打印北京下面的“海淀”“昌平”“朝阳”,选择“海淀”然后会打印海淀下面的“清华大学”和......
  • Python encode()方法和decode()方法
    Pythonencode()方法encode()方法为字符串类型(str)提供的方法,用于将str类型转换成bytes类型,这个过程也称为“编码”。encode()方法的语法格式如下:str.encode([enco......
  • python以主程序形式运行
    以主程序形式运行在每个模块的定义中都包括一个记录模块名称的变量__name__,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其它程序中执行,那么它......
  • 问题随记 —— Python3.8 fasttext 安装
    文章目录​​问题描述​​​​解决方法​​问题描述Python安装fasttext解决方法输入以下命令安装即可。pipinstallfasttext如果报错,需要事先安装C++11环境,否则将编译......
  • 大数据随记 —— 利用Python分析快手APP全国大学生用户数据(2022 年初赛第四题 )
    文章目录​​一、题目描述​​​​0、背景​​​​1、题目一​​​​2、题目二​​​​3、题目三​​​​二、题解​​​​1、题目一详解——学校学生使用频次最多的前3......
  • Python中itertools详解
    目录Python中itertools模块一、简介二、使用介绍1、常用迭代器1.1chain1.2groupby2、无穷迭代器2.1count2.2cycle2.3repeat3、排列组合迭代器3.1product3.2perm......
  • python 接入钉钉群机器人
    一、获取机器人信息。1)添加自定义机器人 2)保存机器人webhook信息  二:调用机器人接口1)curl命令转化程代码可以使用在线工具进行转化程其他语言的代码。cur......
  • python——random模块
    参考:https://www.cnblogs.com/liangmingshen/p/8909376.html 1.random.random() #用于生成一个0到1的随机浮点数:0<=n<1.01importrandom2a=random.rand......
  • python实验报告(第11章)
    实验11:使用Python操作数据库一、实验目的和要求1、学会数据库编程接口;2、学会使用SQLite;3、学会使用MySQL。二、实验环境软件版本:Python3.1064_bit三、实验过程......