更新時間:2021-05-27 來源:黑馬程序員 瀏覽量:
“龍生龍,鳳生鳳,老鼠的兒子會打洞”,這句話將動物界中的繼承關系表現(xiàn)的淋漓盡致。在Python中,類與類之間也具有繼承關系,其中被繼承的類稱為父類或基類,繼承的類稱為子類或派生類。子類在繼承父類時,會自動擁有父類中的方法和屬性。
單繼承指的是子類只繼承一個父類,其語法格式如下:
class 子類(父類):
定義一個表示兩棲動物的父類Amphibian和一個表示青蛙的子類Frog,示例代碼如下:
class Amphibian: name = "兩棲動物" def features(self): print("幼年用鰓呼吸") print("成年用肺兼皮膚呼吸")class Frog(Amphibian): # Frog類繼承自Amphibian類 def attr(self): print(f"青蛙是{self.name}") print("我會呱呱叫")
上述代碼定義的Amphibian類中包含類屬性name與實例方法features(),F(xiàn)rog類繼承Amphibian類并定義了自己的方法attr()。
創(chuàng)建Frog類的對象frog,使用frog對象分別調用Amphibian類與Frog類中的方法,示例代碼如下:
frog = Frog() # 創(chuàng)建類的實例化對象 print(frog.name) # 訪問父類的屬性 frog.features() # 使用父類的方法 frog.attr() # 使用自身的方法
運行程序,結果如下所示:
兩棲動物 幼年用鰓呼吸。 成年用肺兼皮膚呼吸。 青蛙是兩棲動物。 我會呱呱叫。
從輸出結果中可以看出,子類繼承父類之后,就擁有從父類繼承的屬性和方法,它既可以調用自己的方法,又可以調用從父類繼承的方法。
isinstance()函數與issubclass()函數
Python提供了兩個和繼承相關的函數,分別是isinstance()函數和issubclass()函數。
isinstance(o,t)函數用于檢查對象的類型,它有2個參數,第1個參數是要判斷類型的對象(o),第二個參數是類型(t),如果o是t類型的對象,則函數返回True,否則返回False。例如:
>>> isinstance(frog, Frog) True
函數issubclass(cls, classinfo)用于檢查類的繼承關系,它也有2個參數,第一個參數是要判斷的子類類型(cls),第二個參數是要判斷的父類類型(classinfo),如果cls類型是classinfo類型的子類,則函數返回True,否則返回False。例如:
>>> issubclass(Frog, AmphAnimal) True
猜你喜歡: