轉 python語法學習物件導向之繼承

2022-08-28 01:21:21 字數 2757 閱讀 4100

傳送門

python語法學習物件導向之繼承

只要涉及到物件導向,」類「是必須出現的乙個代名詞。

類和物件是物件導向程式設計的兩個主要方面。建立乙個新型別,而物件是這個類的例項。

類的一些概念:

包括初始化方法__init__,可以理解為構造,self,理解為this,等等在前一篇文章中介紹過,現在就學習類的繼承。

繼承:

物件導向的程式設計帶來的主要好處之一是**的重用,實現這種重用的方法之一是通過繼承機制。繼承完全可以理解成類之間的型別和子型別關係。

需要注意的地方:繼承語法class 派生類名(基類名)://...   基類名寫作括號裡,基本類是在類定義的時候,在元組之中指明的。這與c#是有區別的。

何時使用繼承:假如我需要定義幾個類,而類與類之間有一些公共的屬性和方法,這時我就可以把相同的屬性和方法作為基類的成員,而特殊的方法及屬性則在本類中定義,這樣只需要繼承基類這個動作,就可以訪問到基類的屬性和方法了,它提高了**的可擴充套件性。

任何事情都有利有弊:繼承的乙個弱點就是,可能特殊的本類又有其他特殊的地方,又會定義乙個類,其下也可能再定義類,這樣就會造成繼承的那條線越來越長,使用繼承的話,任何一點小的變化也需要重新定義乙個類,很容易引起類的**式增長,產生一大堆有著細微不同的子類. 所以有個「多用組合少用繼承」的原則,(我覺得兩者一起使用才是最佳吧*^◎^*)

在python中繼承中的一些特點:

1:在繼承中基類的構造(__init__()方法)不會被自動呼叫,它需要在其派生類的構造中親自專門呼叫。有別於c#

2:在呼叫基類的方法時,需要加上基類的類名字首,且需要帶上self引數變數。區別於在類中呼叫普通函式時並不需要帶上self引數

3:python總是首先查詢對應型別的方法,如果它不能在派生類中找到對應的方法,它才開始到基類中逐個查詢。(先在本類中查詢呼叫的方法,找不到才去基類中找)。

如果在繼承元組中列了乙個以上的類,那麼它就被稱作「多重繼承」 。

例項:定義乙個模組,模組裡定義了乙個基類:

子類:

輸出:

假如在子類中不用__init__()初始化函式,那麼子類會繼承基類的屬性,如:

輸出:

**:出處:

只要涉及到物件導向,」類「是必須出現的乙個代名詞。

類和物件是物件導向程式設計的兩個主要方面。建立乙個新型別,而物件是這個類的例項。

類的一些概念:

包括初始化方法__init__,可以理解為構造,self,理解為this,等等在前一篇文章中介紹過,現在就學習類的繼承。

繼承:

物件導向的程式設計帶來的主要好處之一是**的重用,實現這種重用的方法之一是通過繼承機制。繼承完全可以理解成類之間的型別和子型別關係。

需要注意的地方:繼承語法class 派生類名(基類名)://...   基類名寫作括號裡,基本類是在類定義的時候,在元組之中指明的。這與c#是有區別的。

何時使用繼承:假如我需要定義幾個類,而類與類之間有一些公共的屬性和方法,這時我就可以把相同的屬性和方法作為基類的成員,而特殊的方法及屬性則在本類中定義,這樣只需要繼承基類這個動作,就可以訪問到基類的屬性和方法了,它提高了**的可擴充套件性。

任何事情都有利有弊:繼承的乙個弱點就是,可能特殊的本類又有其他特殊的地方,又會定義乙個類,其下也可能再定義類,這樣就會造成繼承的那條線越來越長,使用繼承的話,任何一點小的變化也需要重新定義乙個類,很容易引起類的**式增長,產生一大堆有著細微不同的子類. 所以有個「多用組合少用繼承」的原則,(我覺得兩者一起使用才是最佳吧*^◎^*)

在python中繼承中的一些特點:

1:在繼承中基類的構造(__init__()方法)不會被自動呼叫,它需要在其派生類的構造中親自專門呼叫。有別於c#

2:在呼叫基類的方法時,需要加上基類的類名字首,且需要帶上self引數變數。區別於在類中呼叫普通函式時並不需要帶上self引數

3:python總是首先查詢對應型別的方法,如果它不能在派生類中找到對應的方法,它才開始到基類中逐個查詢。(先在本類中查詢呼叫的方法,找不到才去基類中找)。

如果在繼承元組中列了乙個以上的類,那麼它就被稱作「多重繼承」 。

例項:定義乙個模組,模組裡定義了乙個基類:

Python基礎語法學習

函式宣告 以def開始,不指名具體的返回型別,但是通常都會有返回值,即使為空。函式宣告後即可使用 def size a kilobyte is 1024 bytes true 在 python 裡面,變數從來不會顯式的指定型別。python 會在內部算出乙個變數的型別並進行跟蹤。只要你有乙個命名引數...

Python基礎語法學習

1 while loop 迴圈與判斷 while true x input if x q break else print x.upper 2 try except 異常處理 while true x input if x q break try x int x except print 1 els...

PYTHON 基礎語法學習

不需要宣告資料型別 a 10 語句不需要加分號 print hello world 縮排決定 塊的範圍,不需要大括號一.基本資料型別 數值型 整型,浮點型 字串 str 布林型 true false a true print type a 常用容器 資料儲存結構,能夠更好管理資料 列表list 類似...