class Foo(object):
def exec(self):
raise NotImplementedError('請實現exec方法')
class A(Foo):
pass
obj=A()
obj.exec()
類A繼承類Foo,因而擁有類Foo的所有屬性。類A實例化一個對象obj,obj調用exec()方法,如果類A自己沒有定義exec方法,就會拋出異常。
from abc import abstractmethod,ABCMeta
class Foo(metaclass=ABCMeta):
@abcstractmethod
def exec(self):
pass
class A(Foo):
pass
obj=A()
從abc模塊調用類abstractmethod和類ABCMeta,自己定義類Foo,繼承抽象類ABCMeta,在類Foo中定義exec方法,並添加裝飾器abcstractmethod。定義類A繼承類Foo,並實例化對象obj,類A中必須有類Foo中的方法否則就會拋出異常。
