首页 > 编程语言 >Python抽象类介绍

Python抽象类介绍

时间:2023-11-09 22:34:07浏览次数:45  
标签:abc Python 子类 self 介绍 抽象 抽象类 方法

抽象类

什么是抽象类

与java一样,python也有抽象类的概念。抽象类是一种特殊的类,它只能有抽象方法,不能被实例化,在子类继承抽象类时,不能通过实例化使用其抽象方法,必须实现该方法。

抽象类的作用

抽象类可以实现多个子类中共用的部分,而不需要重复写到实现类中。

从设计角度去看,抽象类是基于类抽象而来的,是实现类的基类。

从实现角度来看,抽象类与普通类的不同之处在于:抽象类中有抽象方法,该类不能被实例化,只能被继承,且实现子类必须继承并实现抽象类的方法。

python 3可以利用abc抽象基类实现,python文档说明:abc — 抽象基类

# 利用abc模块实现抽象类
from abc import ABCMeta
from abc import abstractmethod


class AllFile(metaclass=ABCMeta):
    """
    抽象类
    """
    type = 'file'

    @abstractmethod
    def read(self):
        """
        子类必须定义读功能
        :return:
        """
        pass

    @abstractmethod
    def write(self):
        """
        子类必须定义写功能
        :return:
        """
        pass


class File(AllFile):
    """
    子类继承抽象类,但是必须定义read和write方法
    """

    def read(self):
        print('文本数据的读取方法')

    def write(self):
        print('文本数据的读取方法')


txt = File()

txt.read()

print(txt.type)

上述程序运行输出

文本数据的读取方法
file

如果子类继承抽象类时,没有实现抽象方法,在调用子类时会报错

class Txt(All_file):
    pass
    
# 报错,子类没有定义抽象方法
txt1=Txt() 

标签:abc,Python,子类,self,介绍,抽象,抽象类,方法
From: https://blog.51cto.com/u_12482515/8285949

相关文章

  • python用支持向量机回归(SVR)模型分析用电量预测电力消费|附代码数据
    全文链接:http://tecdat.cn/?p=23921最近我们被客户要求撰写关于支持向量机回归的研究报告,包括一些图形和统计输出。本文描述了训练支持向量回归模型的过程,该模型用于预测基于几个天气变量、一天中的某个小时、以及这一天是周末/假日/在家工作日还是普通工作日的用电量关于支持......
  • MySQL 数据库表格创建、数据插入及获取插入的 ID:Python 教程
    创建表格要在MySQL中创建表格,请使用"CREATETABLE"语句。确保在创建连接时定义了数据库的名称。示例创建一个名为"customers"的表格:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword&qu......
  • python升级到3.12版本, 开发模式安装包, 在vscode下Pylance无法解析的问题处理
    问题描述在python3.11版本下开发python库,为方便调测,使用开发模式安装包.使用如下命令:pipinstall-e.其中-e参数表示开发模式下安装python包,它并没有把包相关文件拷贝到site-packages目录,而是创建一个链接指向当前的开发库.这样,当自己开发的包修改后会立即生效,......
  • MySQL 数据库表格创建、数据插入及获取插入的 ID:Python 教程
    创建表格要在MySQL中创建表格,请使用"CREATETABLE"语句。确保在创建连接时定义了数据库的名称。示例创建一个名为"customers"的表格:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword&qu......
  • Python算法
    递归-汉诺塔查看代码 A=[1,2,3,4]B=[]C=[]defhanoi(n,A,B,C):ifn==1:#终止条件C.append(A.pop())returnelse:hanoi(n-1,A,C,B)#将A经过C移动到Bprint(n,A,B,C)C.append(A.pop())#此......
  • Go 接口:Go中最强大的魔法,接口应用模式或惯例介绍
    Go接口:Go中最强大的魔法,接口应用模式或惯例介绍目录Go接口:Go中最强大的魔法,接口应用模式或惯例介绍一、前置原则二、一切皆组合2.1一切皆组合2.2垂直组合2.2.1第一种:通过嵌入接口构建接口2.2.2第二种:通过嵌入接口构建结构体类型2.2.3第三种:通过嵌入结构体类型构建新结构......
  • Python:logging日志模块
    Python:logging日志模块1、logging日志的介绍,在现实生活中,记录日志非常重要,比如:银行转账时会有转账记录;飞机飞行过程中,会有个黑盒子(飞行数据记录器)记录着飞机的飞行过程,那在咱们python程序中想要记录程序在运行时所产生的日志信息,怎么做呢?可以使用logging这个包来完成记录......
  • 【python进阶】14大模块200页知识体系md笔记,第5篇:python下的linux命令使用
    本文从14大模块展示了python高级用的应用。分别有Linux命令,多任务编程、网络编程、Http协议和静态Web编程、html+css、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。全套Python笔记直接地址:请移步这里共......
  • Java中的抽象类
    注意:抽象类中也是有默认的无参构造函数的eg:抽象类中的构造方法父类publicabstractclass_168AbstractParent{privateintage=300;privatefinalintcode_200=200;public_168AbstractParent(){System.out.println("我是Parent的无参构造方法......
  • python的垃圾回收机制
    python解释器在执行到定义变量的语法时,会申请内存空间来存放变量的值,而内存的容量是有限的,这就涉及到变量值所占用内存空间的回收问题,当一个变量值没有用了(垃圾)就应该将其占用的内存回收从逻辑层面分析,定义变量将变量值存起来的目的是为了以后取出来使用,而取得变量值需要通过......