Python2和Python3中@abstractmethod使用方法

  

这篇文章主要介绍了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 ()      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Python2和Python3中@abstractmethod使用方法