ABC 模組
阿新 • • 發佈:2020-08-22
abc:Abstract Base Classes
作用:在程式碼中定義和使用抽象基類進行API檢查。
在Python3.4中,宣告抽象基類最簡單的方式是子類話abc.ABC;
Python3.0到Python3.3,必須在class語句中使用metaclass=ABCMeta;
Python2中使用__metaclass__=ABCMeta
import abc ( metaclass=abc.ABCMeta)
# 多型性是指具有不同功能的函式可以使用相同的函式名,這樣就可以用一個函式名呼叫不同內容的函式。
# 在面向物件方法中一般是這樣表述多型性:向不同的物件傳送同一條訊息,不同的物件在接收時會產生不同的行為(即方法)# 。也就是說,每個物件可以用自己的方式去響應共同的訊息。所謂訊息,就是呼叫函式,不同的行為就是指不同的實現,即執行不同的函式。
# 上述程式碼子類是約定俗稱的實現這個方法,加上@abc.abstractmethod裝飾器後嚴格控制子類必須實現這個方法
import abc
class Animal(metaclass=abc.ABCMeta): # 同一類事物:動物
@abc.abstractmethod # 上述程式碼子類是約定俗稱的實現這個方法,加上@abc.abstractmethod裝飾器後嚴格控制子類必須實現這個方法
def talk(self):
raise AttributeError('子類必須實現這個方法')
class People(Animal): # 動物的形態之一:人
def talk(self):
print('say hello')
class Dog(Animal): # 動物的形態之二:狗
def talk(self):
print('say wangwang')
class Pig(Animal): # 動物的形態之三:豬
def talk(self):
print('say aoao')
peo2 = People()
pig2 = Pig()
d2 = Dog()
peo2.talk()
pig2.talk()
d2.talk()