这篇文章主要介绍了Python2和Python3中@abstractmethod使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
抽象方法:
抽象方法表示基类的一个方法,没有实现,所以基类不能实例化,子类实现了该抽象方法才能被实例化。
Python的abc提供了@abstractmethod装饰器实现抽象方法、下面以Python3的abc模块举例。
@abstractmethod:
基类Foo的有趣的方法被@abstractmethod装饰了,所以Foo不能被实例化;子饰演类苏泊没有实现基类的有趣的方法也不能被实例化;子类SubB实现了基类的抽象方法的乐趣所以能实例化。
完整代码:
在Python3.4中,声明抽象基类最简单的方式是子类话abc.ABC; Python3.0到Python3.3,必须在类语句中使用元类=ABCMeta; Python2中使用__metaclass__=ABCMeta
Python3.4实现方法:
从校正进口,abstractmethod 类Foo (ABC): @abstractmethod def有趣的(自我): “请Implemente子类” 类SubFoo (Foo): def有趣的(自我): 打印(“SubFoo乐趣”) 一个=SubFoo () a.fun ()
Python3.0到Python3.3的实现方法:
从美国广播公司进口abstractmethod ABCMeta 类酒吧(元类=ABCMeta): @abstractmethod def有趣的(自我): “请Implemente子类” 类SubBar(条): def有趣的(自我): 打印(“SubBar乐趣”) b=SubBar () b.fun ()
Python2的实现方法:
从美国广播公司进口ABCMeta abstractmethod 类FooBar (): __metaclass__=ABCMeta @abstractmethod def有趣的(自我): “请Implemente子类” 类SubFooBar (FooBar): def有趣的(自我): 打印(“SubFooBar乐趣”) 一个=SubFooBar () a.fun ()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。