python的抽象类与定义方法

2020-10-17 15:46:38 蜻蜓队长

hello 各位小伙伴大家好, 今天想分享一个python如何定义抽象类的手记,众所周知,python是没有interface---接口这个概念的, 在其他的编程语言中,比如golang 如果希望一个函数被反复在不同场景调用,可以使用interface做关联管理,而我们的python其实也有相应的办法,那就是: 通过定义一个基础抽象类,使得继承他的类必须重写需要的函数。这一知识应该不属于python的基础中的,所以如果大家基础还没有打捞,可以移步这里:python2020全栈开发 先把基础打捞。

好,那让我们先说一下如何定义python的抽象类,让我们先提前给出代码(python3),然后解释:

我们来看上图: 通过python的内置模块 abc 倒入 abstractclassmethod 与 ABCMeta,其中前者是一个装饰器函数,后者为显示声明我当前的类为一个抽象类,所以我们在第二行看到了,在parent类的括弧中,定义类metaclass=ABCMeta) 就是生命我是一个抽象类,接下来去定义抽象类中的抽象函数,在每个函数上方添加抽象对应的装饰器,该函数可以没有任何逻辑,直接pass就好,因为他需要未来继承这个抽象类的类去重写他的业务逻辑。


好,现在抽象类已经定义好了,我们来实例化一下试试:

什么情况? 怎么不能实例化呢? 是的, 抽象类,或者说含有抽象函数的类是不能实例化的,必须要重写类函数才可以,所以我们在继承了抽象类后,如果不重写这些抽象函数,依然无法实例化,比如:


所以我们必须重写抽象函数,才可以实例化,比如:


好了,这样就完成了抽象类的定义以及抽象类的使用。 抽象类主要是定义一个函数规则,我们去重复实现在各自的场景下,类似于 其他语言interface的效果。 如果有不准确的地方,也望指正,那么我们今天的分享就到这里。


··································

欢迎关注课程:

《Django入门到进阶-更适合Python小白的系统课程》

  金职位 Python工程师2020版


点击查看更多内容

以上内容来自于网络,如有侵权联系即删除
相关文章

上一篇: python定义一个用户可自定义成员的结构体

下一篇: Nginx入门教程

客服紫薇:15852074331
在线咨询
客户经理