Python编程基础:第四十七节 抽象类Abstract Classes
生活随笔
收集整理的這篇文章主要介紹了
Python编程基础:第四十七节 抽象类Abstract Classes
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第四十七節 抽象類Abstract Classes
- 前言
- 實踐
前言
抽象類可以這么理解,它就是一個模板,里面聲明了子類必須定義的函數,但是對于每個函數都沒有給出具體實現。所有函數的實現都是在子類中定義。我們這里給出抽象類的定義方式:
from abc import ABC, abstractmethodclass 類名稱(ABC):@abstractmethoddef 方法名稱(self):pass實踐
我們先定義一個People抽象類:
from abc import ABC, abstractmethodclass People(ABC):@abstractmethoddef gender(self):pass可見,People類是ABC類的子類,ABC是Abstract Classes的簡寫,通過以上定義就可以聲明People類是抽象類。如果我們要指定某個函數是People類的所有子類均需要定義的,我們就在這個函數上方添加@abstractmethod。通過這樣定義,如果子類中沒有該函數的具體實現過程程序就會報錯。
然后我們創建子類Woman繼承于父類People:
可見,子類Woman中給出了gender方法的具體實現過程。我們接下來對子類實例化:
woman = Woman() woman.gender() >>> This is a woman當然,我們在重寫抽象類中聲明的函數時也可以傳參:
class Man(People):def __init__(self, height):self.height = heightdef gender(self, country):print("This is a {} man".format(country))def description(self):print("This man is {}cm".format(self.height))我們定義子類Man繼承于父類People,并對gender函數進行實現,不同的是這里的gender函數需要外部傳參。我們給出該類的實例化過程:
man = Man(height=170.2) man.gender(country="Chinese") man.description() >>> This is a Chinese man >>> This man is 170.2cm以上便是抽象類的全部內容,感謝大家的收藏、點贊、評論。我們下一節將介紹對象作為參數(Objects as Arguments),敬請期待~
總結
以上是生活随笔為你收集整理的Python编程基础:第四十七节 抽象类Abstract Classes的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python编程基础:第四十六节 sup
- 下一篇: Python编程基础:第四十八节 对象作