python抽象基类

抽象基类

抽象基类提了一种方式,用以组织对象的层次结构,做出关于所需方法的断言,以及实现其他一些功能

要定义抽象基类,需要使用abc模块,该模块定义了一个元类(ABCMeta) 和一组装饰器(@abstractmethod 和 abstractproperty)用法如下:

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
View Code

抽象类离不开元类。在抽象类中@abstractmethod和@abstractproperty装饰去指定方法或特性必须由Foo的子类实现。

抽象类不能直接实例化。如果Bar继承自Foo,但它没有实现一个或多个抽象方法那么尝试创建Bar将失败

猜你喜欢

转载自www.cnblogs.com/yang-he/p/11481433.html
今日推荐