python接口与抽象类

说明

本实例代码为python3实现,

分享

抽象类

  • 抽象类是面向对象开发的重要功能之一,当项目因需求复杂性增强,可通过抽象类,定义公共方法与属性,抽象方法与属性,保证项目统一性和结构性,方便开发和维护。
  • Python支持多继承

代码

# 抽象类必须导入该模块
from abc import abstractmethod, ABCMeta


class base(metaclass=ABCMeta):

    @abstractmethod  #定义抽象方法,无需实现
    def method1(self):
        pass

    # 非抽象方法
    def method2(self):
        print('父类非抽象方法')


class children(base):

    def method1(self):
        print('子类实现父类抽象方法')


child = children()
child.method1()
child.method2()  

接口

  • 接口分无返回值和有返回值。

无返回值接口

# 定义接口
class InterfaceModel(object):
    def get_a(self):
        pass

    def get_b(self):
        pass
    
    def get_c(self):
        pass

# 实现接口,接口方法不必全部实现,仅实现需要的部分即可
class model(InterfaceModel):
    def get_a(self):
        print("Impl1_a")

    def get_b(self):
        print("Impl1_b")

if __name__ == '__main__':
    model=model()
    model.get_a()
    model.get_b()

有返回值接口

  • -> 后面表示说明此方法的返回值(注释作用)
  • … 表示返回值可以有0个或多个

# 定义接口
class InterfaceModel(object):
    def get_a(self) -> int: ...  #返回0~n个参数

    def get_b(self) -> int: ...

    def get_c(self) -> int: ...


# 接口实现1
class model(InterfaceModel):
    def get_a(self):
        print("实现类执行get_a")
        return '接口get_a返回值'

    def get_b(self):
        print("实现类执行get_b")

if __name__ == '__main__':
    model=model()
    model.get_a()
    model.get_b()

总结

  • Python语法过于灵活,工具库众多,能完成日常绝大多数功能需求,由于性能和过于灵活,不太适合大型项目。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值