python抽象基类
抽象基类
抽象基类提了一种方式,用以组织对象的层次结构,做出关于所需方法的断言,以及实现其他一些功能
要定义抽象基类,需要使用abc模块,该模块定义了一个元类(ABCMeta) 和一组装饰器(@abstractmethod 和 abstractproperty)用法如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 from abc import ABCMeta, abstractmethod, abstractproperty 2 class Foo: 3 __metaclass__ == ABCMeta 4 @abstractmethod 5 def spam(self, a, b): 6 pass 7 @abstractproperty 8 def name(self): 9 pass
抽象类离不开元类。在抽象类中@abstractmethod和@abstractproperty装饰去指定方法或特性必须由Foo的子类实现。
抽象类不能直接实例化。如果Bar继承自Foo,但它没有实现一个或多个抽象方法那么尝试创建Bar将失败
杨河