Python中抽象类(abstract class)的实现

首先我们import需要的用到的库:

from abc import ABC,abstractmethod

接下来我们定义所需的抽象类(abstract class):

class Animal(ABC):
    @abstractmethod
    def eat(self):
        pass

利用@abstractmethod装饰器,同时eat函数的函数体(body)的内容为pass,我们就构造了一个抽象类。

这个抽象类不能直接实例化使用,例如:

animal = Animal() # 错误代码

就会报错Can't instantiate abstract class Animal with abstract methods eat.

正确的做法是,我们需要具体实现抽象类中的eat方法之后,才能将类实例化出对象:

class Cat(Animal):
    def eat(self):
        print('I eat fish')


class Sheep(Animal):
    def eat(self):
        print('I eat grass')

我们重新书写了eat函数,实现了函数的覆盖(override),这样就能实例化了:

cat = Cat()
sheep = Sheep()

cat.eat()
sheep.eat()

输出为:

I eat fish
I eat grass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值