标签:支持 abstract read div 没有 nbsp rac 方法 数据
# 抽象类 # 一般情况下都是单继承 能实现的功能都是一样的 # 抽象类也是一种规范,在python中实现起来与接口类类似 # 多继承的情况 由于功能比较复杂,所以不容易抽象出相同的功能的具体实现写在父类中.而单继承实现的功能都是一样的,所以在父类中 # 不管是抽象类还是接口类都是面向对象的开发规范 # 在python中没有接口类(但是为了规范,所以弄了接口类),在java中,因为java中没有多继承,所以创建了一个接口类来实现多继承 # python中支持抽象类,且可以在抽象类中实现python代码 # 为什么要有抽象类 # 如果说类是从一堆对象中抽取相同的内容而来的,那么抽象类就是从一堆类中抽取相同的内容而来的,抽取的内容包括数据属性和函数属性 # 比如我们有香蕉的类、有苹果类、有桃子类,从这些类抽取相同的内容就是水果这个抽象的类,你吃水果时,要么是吃一个具体的香蕉、要么是吃一个具体的桃子,你永远无法吃到一个叫做水果的东西 from abc import abstractmethod, ABCMeta # 抽象类,可以在类中实现部分代码(实际上,在python中接口类与抽象类实现是一样的(因为python中没有接口类,接口类是java弄的,java为了解决多继承而存在的),所以如果抽象类中可以实现部分代码,那么接口类其实也是可以实现部分代码的,但是因为接口类众所周知是不能实现方法的,所以我们默认不实现) class All_file(metaclass=ABCMeta): @abstractmethod def read(self): # 子类必须实现read方法,否则实例化时报错 print(‘haha‘) # 可以实现部分代码 @abstractmethod def write(self):# 子类必须实现read方法,否则实例化时报错 pass class Txt(All_file): def read(self): # 子类必须实现 super().read() print(‘===‘) def write(self): print(‘++++‘) t = Txt() t.read() # haha ===
标签:支持 abstract read div 没有 nbsp rac 方法 数据
原文地址:https://www.cnblogs.com/whylinux/p/9737459.html