python 接口与归一化设计+抽象类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 接口与归一化设计+抽象类相关的知识,希望对你有一定的参考价值。

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()

 

以上是关于python 接口与归一化设计+抽象类的主要内容,如果未能解决你的问题,请参考以下文章

Python3.7之抽象类与归一化

Python 3 接口与归一化设计

Python__接口与归一化设计

python基础--接口与归一化设计封装异常网络编程

抽象类与归一化

python之接口与抽象类