抽象类

在python中实现抽象类

  • 抽象类是一个介于类和接口直接的一个概念,同时具备类和接口的部分特性,可以用来实现归一化设计

(1)导入模块

import abc

(2)不重写抽象类方法

  • 其实就是在子类中不重写抽象类,只定义
import abc  # 利用abc模块实现抽象类


class All_file(metaclass=abc.ABCMeta):
    # 定义抽象方法,无需实现功能
    @abc.abstractmethod
    def read(self):
        '子类必须定义该功能'
        pass

    # 定义抽象方法,无需实现功能
    @abc.abstractmethod
    def write(self):
        '子类必须定义该功能'
        pass


class Txt(All_file):
    def read(self):
        ...

    def write(self):
        ...


t1 = Txt()

(3)重写抽象类方法

  • 其实就是在子类中重写抽象类
import abc


class All_File(metaclass=abc.ABCMeta):
    # 定义抽象方法,无需实现功能
    @abc.abstractmethod
    def read(self):
        print(f'读')

    # 定义抽象方法,无需实现功能
    @abc.abstractmethod
    def write(self):
        print(f'写')

# 子类继承抽象类,但是必须定义read和write方法
class Txt(All_File):
    def read(self):
        print('文本数据的读取方法')

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


# 子类继承抽象类,但是必须定义read和write方法
class Sata(All_File):
    def read(self):
        print('硬盘数据的读取方法')

    def write(self):
        print('硬盘数据的读取方法')


# 子类继承抽象类,但是必须定义read和write方法
class Process(All_File):
    def read(self):
        print('进程数据的读取方法')

    def write(self):
        print('进程数据的读取方法')


test_file = Txt()

video_file = Sata()

process_file = Process()

# 这样大家都是被归一化了,也就是一切皆文件的思想
test_file.read()  # 文本数据的读取方法
video_file.write()  # 硬盘数据的读取方法
process_file.read()  # 进程数据的读取方法
posted @ 2024-01-05 19:20  ALPACINO6  阅读(18)  评论(0)    收藏  举报