導航:首頁 > 編程語言 > python子類強制重寫

python子類強制重寫

發布時間:2024-12-04 20:09:58

python面向對象編程中的f.init()什麼意思,為什麼要加這一個

f.init()加在中間是為了類Filter定義一個屬性blocked並初始化,因為它定義了類的屬性blocked,而類Filter的函數filter中要用到這個屬性,所以不加f.init()會報錯.

同樣的s.init(),SPAMFilter子類重寫了Filter父類的init函數,並且重新定義了屬性blocked,而子類SPAMFilter繼承的父類Filter的函數filter中用到了這個屬性,所以不加s.init()也會報錯.

完整的Python程序如下

class Filter:

def init(self):

self.blocked=[]

def filter(self,sequence):

return [x for x in sequence if x not in self.blocked]

class SPAMFilter(Filter):

def init(self):

self.blocked=['SPAM']

f=Filter()

f.init()

print(f.filter([1,2,3]))

s=SPAMFilter()

s.init()

print(s.filter(['SPAM','SPAM','SPAM','SPAM','eggs','bacon','SPAM']))

源代碼(注意源代碼的縮進)

㈡ python中,面向對象有哪些機制有利於代碼復用

Python中面向對象編程有以下機制有利於代碼復用:

1.繼承(Inheritance):子類可以繼承父類的屬性和方法,並且可以在不改變父類的情況下對其進行擴展或修改,從而減少代碼的重復編寫。例如,一個父類定義了通用的方法,子類可以繼承這些方法並添加特定的實現。

在這個例子中,我們定義了一個抽象基類 Animal,它有一個抽象方法 make_sound,用於定義動物的叫聲。然後我們定義了兩個子類 Dog 和 Cat,它們芹者分別實現了 make_sound 方法,以定義狗和貓的叫聲。由於它們都實現了 Animal 類的介面,所以它們有相同的行為,我們可以使用相同的方式對它們進行操作。

閱讀全文

與python子類強制重寫相關的資料

熱點內容
伺服器的應用鏡像是什麼 瀏覽:151
命令行的使用方法 瀏覽:509
怎麼讓圖片左右壓縮 瀏覽:653
白鹿原pdf 瀏覽:431
人民幣怎麼演算法 瀏覽:756
什麼app可以聽懂刺蝟說話 瀏覽:598
安卓機內存小如何擴大 瀏覽:127
粉絲伺服器怎麼和安卓手機通信 瀏覽:400
初中數學競賽pdf 瀏覽:570
linux自定義安裝 瀏覽:190
fpic要在每個編譯文件 瀏覽:868
編譯原理廣義推導的定義 瀏覽:911
怎麼在已有的壓縮文件里加密碼 瀏覽:519
安卓手機怎麼設置系統軟體 瀏覽:768
php前端java後端 瀏覽:796
數據框轉換為矩陣python 瀏覽:76
單片機程序反匯編 瀏覽:853
編程和實物不一樣 瀏覽:880
天官賜福小說什麼app可看 瀏覽:210
原車空調改壓縮機 瀏覽:105