python抽象基类的实现

抽象基类的基本用法

python中使用抽象基类需要调用包abc

用处:当需要定义具有共同特点的一类事物时,常常使用抽象基类

注意点:

  1. 抽象基类无法实例化,需要使用抽象方法的方法往往不写内容,只写一些说明性的文字
  2. 实现类必须实现抽象方法中的全部方法,否则那些方法不能称之为抽象方法,抽象方法前用@abstractmethod装饰
  3. 实现类的实例也可以直接调用父类中的其他非抽象方法。实例共有的属性信息,可以在抽象类中初始化,这样就可以避免在每个子类中单独传入

示例代码:

from abc import ABCMeta, abstractmethod


# 抽象基类,定义一系列抽象方法,不能单独使用
class VehicleBase(object, metaclass=ABCMeta):
    def __init__(self, vehicle, year):
        self.vehicle = vehicle
        self.year = year

    @abstractmethod
    def run(self):
        pass

    @abstractmethod
    def stop(self):
        pass

    def car_age(self):
        print("{}已经用了{}年了".format(self.vehicle, self.year))

    @staticmethod
    def breaking():
        print("车坏了")


# 实现类,继承抽象类,实现抽象类中的所有抽象方法
class Car1(VehicleBase):
    def run(self):
        print("车正在跑")

    def stop(self):
        print("车停了")


class Car2(VehicleBase):
    def run(self):
        print("车还在跑")

    def stop(self):
        print("车又停了")


if __name__ == "__main__":
    car1 = Car1('丰田', 18)
    car2 = Car2('Tesla', 5)
    car1.run()
    car1.stop()
    car2.run()
    car2.stop()
    car2.breaking()
    car2.car_age()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值