标签:父类 method 报错 meta 为什么 固定 html print interface
1.什么是接口
接口可以理解为自己给使用者来调用自己功能方法的入口。
2.为什么要用接口
(1).可以实现权限控制,比如可以通过接口做一下访问控制,可以允许或者拒绝调用者的一些操作。
(2).降低了使用者的使用难度,使用者只需要知道怎么调用即可,不需要知道里边的具体实现方法。
3.接口的例子
class File:#定义接口 def read(self): #定接口函数read pass def write(self): #定义接口函数write pass class Txt(Interface): #文本,具体实现read和write def read(self): print(‘文本数据的读取方法‘) def write(self): print(‘文本数据的读取方法‘) class Sata(Interface): #磁盘,具体实现read和write def read(self): print(‘硬盘数据的读取方法‘) def write(self): print(‘硬盘数据的读取方法‘)
上述例子就是一个接口类型,子类中的方法与父类的保持一致。但是这种发放并不能强制子类拥有父类中定义的方法,子类可以随便更改函数名称。
解决上述方法就用到了“抽象类”
抽象类
import abc #导入abc模块实现抽象类 class Ifile(metaclass=abc.ABCMeta): #固定写法,类名无所谓,可以随意取. @abc.abstractmethod #定义抽象方法,继承此类的子类中必须有下面的函数,没有就会报错. def read(self): pass @abc.abstractmethod def write(self): pass class Txt(Ifile): #子类继承抽象类 子类中必须要有read跟write方法,没有就会报错. def read(self): print(‘这是TXT文件的读‘) def write(self): print(‘这是TXT文件的写..‘) class Html(Ifile): def read(self): print(‘这是Html文件的读‘) def write(self): print(‘这是Html文件的写..‘) t = Txt() #定义对象 h = Html() t.read() #在使用的时候直接使用read方法即可。这样大家就做到了统一化,读文件的时候都用read方法。 h.read()
标签:父类 method 报错 meta 为什么 固定 html print interface
原文地址:http://www.cnblogs.com/yxwang/p/7401517.html