抽象类

在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 @   ssrheart  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示