首頁(yè)技術(shù)文章正文

什么是單繼承?Python中單繼承的語(yǔ)法格式是怎樣的?

更新時(shí)間:2021-05-27 來(lái)源:黑馬程序員 瀏覽量:

傳智教育-一樣的教育,不一樣的品質(zhì)

“龍生龍,鳳生鳳,老鼠的兒子會(huì)打洞”,這句話將動(dòng)物界中的繼承關(guān)系表現(xiàn)的淋漓盡致。在Python中,類與類之間也具有繼承關(guān)系,其中被繼承的類稱為父類或基類,繼承的類稱為子類或派生類。子類在繼承父類時(shí),會(huì)自動(dòng)擁有父類中的方法和屬性。

單繼承指的是子類只繼承一個(gè)父類,其語(yǔ)法格式如下:

class 子類(父類):

定義一個(gè)表示兩棲動(dòng)物的父類Amphibian和一個(gè)表示青蛙的子類Frog,示例代碼如下:

class Amphibian:
    name = "兩棲動(dòng)物"    
    def features(self):
        print("幼年用鰓呼吸")
        print("成年用肺兼皮膚呼吸")class Frog(Amphibian):  # Frog類繼承自Amphibian類
    def attr(self):
        print(f"青蛙是{self.name}")
        print("我會(huì)呱呱叫")

上述代碼定義的Amphibian類中包含類屬性name與實(shí)例方法features(),F(xiàn)rog類繼承Amphibian類并定義了自己的方法attr()。

創(chuàng)建Frog類的對(duì)象frog,使用frog對(duì)象分別調(diào)用Amphibian類與Frog類中的方法,示例代碼如下:

frog = Frog()                # 創(chuàng)建類的實(shí)例化對(duì)象
print(frog.name)             # 訪問(wèn)父類的屬性
frog.features()              # 使用父類的方法
frog.attr()                  # 使用自身的方法

運(yùn)行程序,結(jié)果如下所示:

兩棲動(dòng)物
幼年用鰓呼吸。
成年用肺兼皮膚呼吸。
青蛙是兩棲動(dòng)物。
我會(huì)呱呱叫。

從輸出結(jié)果中可以看出,子類繼承父類之后,就擁有從父類繼承的屬性和方法,它既可以調(diào)用自己的方法,又可以調(diào)用從父類繼承的方法。

isinstance()函數(shù)與issubclass()函數(shù)

Python提供了兩個(gè)和繼承相關(guān)的函數(shù),分別是isinstance()函數(shù)和issubclass()函數(shù)。

isinstance(o,t)函數(shù)用于檢查對(duì)象的類型,它有2個(gè)參數(shù),第1個(gè)參數(shù)是要判斷類型的對(duì)象(o),第二個(gè)參數(shù)是類型(t),如果o是t類型的對(duì)象,則函數(shù)返回True,否則返回False。例如:

>>> isinstance(frog, Frog)
True

函數(shù)issubclass(cls, classinfo)用于檢查類的繼承關(guān)系,它也有2個(gè)參數(shù),第一個(gè)參數(shù)是要判斷的子類類型(cls),第二個(gè)參數(shù)是要判斷的父類類型(classinfo),如果cls類型是classinfo類型的子類,則函數(shù)返回True,否則返回False。例如:

>>> issubclass(Frog, AmphAnimal)
True








猜你喜歡:

Python如何去除列表重復(fù)元素?

如何使用Python將sitemap.xml轉(zhuǎn)為sitemap.txt?

Python爬蟲(chóng)支持的網(wǎng)頁(yè)解析技術(shù)有哪些?

黑馬程序員Python+大數(shù)據(jù)開(kāi)發(fā)培訓(xùn)

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!