新聞中心
在某個在線教育的網(wǎng)站上設(shè)計模式相關(guān)的課程中,某老師說 Python 不支持抽象類和接口。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比前郭網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式前郭網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋前郭地區(qū)。費(fèi)用合理售后完善,十年實體公司更值得信賴。
但實際上,Python 支持抽象類。Python 自帶的abc模塊用于實現(xiàn)抽象類相關(guān)的定義和操作。
我們通過一個簡單的例子來說明,如何在 Python 中實現(xiàn)抽象類:
- from abc import ABC, abstractmethod
- class People(ABC):
- @abstractmethod
- def walk(self):
- pass
- @abstractmethod
- def eat(self):
- pass
- def dance(self):
- print('我正在跳舞')
從abc模塊導(dǎo)入ABC類,和abstractmethod抽象方法裝飾器。基于ABC類可以實現(xiàn)一個抽象類。通過@abstractmethod裝飾一個方法,讓它成為一個抽象方法。抽象方法在子類中必需被實現(xiàn)。
抽象類不能被實例化,所以我們實例化一下,可以看到這里報錯了,如下圖所示:
我們再看一下,如果繼承抽象類,但是沒有實現(xiàn)其中的某個抽象方法,也會導(dǎo)致報錯。如下圖所示:
當(dāng)我們把所有抽象方法都實現(xiàn)了以后,子類就能夠正常初始化了,如下圖所示:
抽象類People中的dance不是抽象方法,所以子類不需要覆蓋。抽象類是軟件開發(fā)中一個非常重要的概念,通過定義抽象類,我們可以約定子類必需實現(xiàn)的方法。當(dāng)我們一個類有幾十上百個方法時,用抽象方法來防止子類漏掉某些方法是非常方便的做法。
網(wǎng)頁題目:一日一技:在Python里面如何實現(xiàn)一個抽象類
當(dāng)前鏈接:http://www.dlmjj.cn/article/dpsdosd.html


咨詢
建站咨詢
