抽象類就是從一堆類中抽取相似的功能建立乙個類作為父類,子類繼承父類,子類產生的物件在呼叫的時候,用法一樣,方便使用。抽象類的定義的函式沒有實現功能,只是規定了函式名,而且抽象類沒法例項化。
class animals:
def run(self):
pass
class people(animals):
def run(self):
pass
class dog(animals):
def walk(self):
pass
class pig(animals):
def go(self):
pass
雖然定義了animals類定義了「走」的函式,但是子類中可以覆蓋父類中函式,子類產生的例項化物件中,在呼叫「走」的功能時,就比較麻煩不知道用什麼(run walk go)。因此需要抽象類統一下,抽象類的用法:
import abc # 匯入模組
class animals(metaclass=abc.abcmeta): # 新增metaclass=abc.abcmeta
@abc.abstractmethod # 新增@abc.abstractmethod
def run(self):
pass
class people(animals):
def run(self):
print('running')
class dog(animals):
def run(self):
pass
class pig(animals):
def run(self):
pass
# animal = animals() # 報錯不能例項化
people = people()
people.run()
# running
子類中定義函式必須與之相符,呼叫時統一為run.
子類中必須有父類規定的函式,也可以新增其他函式
class animals(metaclass=abc.abcmeta):
@abc.abstractmethod
def run(self):
pass
class people(animals):
def run(self):
print('running')
class dog(animals):
def walk(self):
print('walking')
def run(self):
print('running')
class pig(animals): #
def run(self):
pass
# animal = animals() # 報錯不能例項化
dog = dog()
dog.walk()
#walking
python抽象類 抽象方法的實現
由於python沒有抽象類 介面的概念,所以要實現這種功能得abc.py這個類庫,具體方式如下 coding utf 8 import abc 抽象類 class studentbase object metaclass abc.abcmeta abc.abstractmethod defstudy...
python 抽象類 抽象方法的實現
由於python 沒有抽象類 介面的概念,所以要實現這種功能得abc.py 這個類庫,具體方式如下 1 from abc import abcmeta,abstractmethod23 抽象類 實現類 如果子類不實現父類的 getbaiduheaders方法,則丟擲typeerror can t i...
python 抽象類 抽象方法的實現
python 抽象類 抽象方法的實現 抽象基類提供了一種要求子類實現指定協議的方式,如果乙個抽象基類要求實現指定的方法,而子類沒有實現的話,當試圖建立子類或者執行子類 時會丟擲異常。python 沒有抽象類 介面的概念,所以要實現這種功能得abc.py 這個類庫 abc模組提供了乙個抽象基類宣告協議...