Python面向对象
这篇博客主要介绍Python中面向对象的一些比较高级的用法。
面向对象编程的四要素
类、属性、函数、对象
那么,类就是一群具有相同属性和函数的对象的集合。
抽象类和抽象函数
假设有以下代码,有一个父类和两个子类。
1 | class Entity(): |
在上述代码中的Entity
类本身没有什么作用,只是提供了一些Document
和Video
的基本元素。因而,我们不需要生成Entity
的对象。那么,如何防止生成Entity
的对象呢?
这里需要引入抽象类和抽象函数的概念:
所谓抽象类是一种特殊的类,该类的作用就是作为父类存在的,一旦对其进行对象化就会产生错误。同样,抽象函数定义在抽象类中,子类必须重写该函数才能被使用。抽象函数使用装饰器
@abstractmethod
来表示。
如下代码:
1 | from abc import ABCMeta, abstractmethod |
在上述代码中,我们直接声明了抽象类Entity
的对象,引发了类型错误。我们必须使用子类对其进行继承才能正常使用。
抽象类的作用就是定义接口,是一种自上而下的设计方法。只需要使用少量的代码对需要做的事情进行描述,定义好接口,然后分发给不同的开发人员进行开发和对接。