接口类

引言:
在我们日常生活中用电脑存储数据时,会用到磁盘存储 文件存储 存储器存储等,每种存储方式都会有读数据和写数据两种操作,那么读和写操作可以提出来单写成一个类。剩下三个类去继承他的方法即可。但是要注意:我们需要这三种方法必须都有读写两种方法,这时就需要用到接口类。
例:
首先演示一个没有用到接口类的,在Mem类中只实现了read()方法,程序可执行

class All_file():
    def read(self):
        pass
    def write(self):
        pass
class Txt(All_file):
    def read(self):
        print('文本数据的读取方法')
    def write(self):
        print('文本数据的写方法')
class Disk(All_file):
    def read(self):
        print('磁盘数据的读取方法')

class Mem(All_file):
    def read(self):
        print('mem read')
m1=Mem()
m1.read()

结果
mem read
使用接口类后:

import 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):
        print('文本数据的读取方法')
    def write(self):
        print('文本数据的写方法')
class Disk(All_file):
    def read(self):
        print('磁盘数据的读取方法')

class Mem(All_file):
    def read(self):
        print('mem read')

    # def write(self):
    #     print('mem write')
m1=Mem()
m1.read()

结果:

Traceback (most recent call last):
  File "E:/python_workspace/test/le/bin.py", line 41, in <module>
    m1=Mem()
TypeError: Can't instantiate abstract class Mem with abstract methods write

这就实现了父类对它子类的一个限制,限制子类必须有读和写两种方法。而且接口类中的方法不必实现,她就是起到一个限制作用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值