码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-08-20 22:27:30      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:父类   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()

 

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

标签:父类   method   报错   meta   为什么   固定   html   print   interface   

原文地址:http://www.cnblogs.com/yxwang/p/7401517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!