竹内纱里奈和大战黑人_欧美成人黄色小视频_91福利影视_欧美在线观看视频网站_h色网站免费观看_97综合

極客小將

您現在的位置是:首頁 » python編程資訊

資訊內容

你了解python中的繼承嗎

極客小將2020-12-29-
簡介繼承機制經常用于創建和現有類功能類似的新類,又或是新類只需要在現有類基礎上添加一些成員(屬性和方法),但又不想直接將現有類代碼復制給新類。也就是說,通過使用繼承這種機制,可以輕松實現類的重復使用。舉個例子,假設現有一個Shape類,該類的draw()方法可以在屏幕上畫出指定的形狀,現在需要創建一個F

p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

繼承機制經常用于創建和現有類功能類似的新類,又或是新類只需要在現有類基礎上添加一些成員(屬性和方法),但又不想直接將現有p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

類代碼復制給新類。也就是說,通過使用繼承這種機制,可以輕松實現類的重復使用。

舉個例子,假設現有一個 Shape 類,該類的 draw() 方法可以在屏幕上畫出指定的形狀,現在需要創建一個 Form 類,要求此類不但可以p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

在屏幕上畫出指定的形狀,還可以計算出所畫形狀的面積。要創建這樣的類,笨方法是將 draw() 方法直接復制到新類中,并添加計算面p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

積的方法。實現代碼如下所示:p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

class Shape:     def draw(self,content):         print("畫",content) class Form:     def draw(self,content):         print("畫",content)     def area(self):         #....         print("此圖形的面積為...")

當然還有更簡單的方法,就是使用類的繼承機制。實現方法為:讓 From 類繼承 Shape 類,這樣當 From 類對象調用 draw() 方法時,p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

python 解釋器會先去 From 中找以 draw 為名的方法,如果找不到,它還會自動去 Shape 類中找。如此,我們只需在 From 類中添加p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

計算面積的方法即可,示例代碼如下:p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

class Shape:     def draw(self,content):         print("畫",content) class Form(Shape):     def area(self):         #....         print("此圖形的面積為...")

上面代碼中,class From(Shape) 就表示 From 繼承 Shape。

Python 中,實現繼承的類稱為子類,被繼承的類稱為父類(也可稱為基類、超類)。因此在上面這個樣例中,From 是子類,Shape 是父類。

子類繼承父類時,只需在定義子類時,將父類(可以是多個)放在子類之后的圓括號里即可。語法格式如下:p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

class 類名(父類1, 父類2, ...):     #類定義部分

注意,有讀者可能還聽說過“派生”這個詞匯,它和繼承是一個意思,只是觀察角度不同而已。換句話話,繼承是相對子類來說的,即子p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

類繼承自父類;而派生是相對于父類來說的,即父類派生出子類。

了解了繼承機制的含義和語法之后,下面代碼演示了繼承機制的用法:p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

class People:     def say(self):         print("我是一個人,名字是:",self.name) class Animal:     def display(self):         print("人也是高級動物") #同時繼承 People 和 Animal 類 #其同時擁有 name 屬性、say() 和 display() 方法 class Person(People, Animal):     pass zhangsan = Person() zhangsan.name = "張三" zhangsan.say() zhangsan.display()

關于Python的多繼承p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

事實上,大部分面向對象的編程語言,都只支持單繼承,即子類有且只能有一個父類。而 Python 卻支持多繼承(C++也支持多繼承)。p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

和單繼承相比,多繼承容易讓代碼邏輯復雜、思路混亂,一直備受爭議,中小型項目中較少使用,后來的 Java、C#、PHP 等干脆取消了多繼承。p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

使用多繼承經常需要面臨的問題是,多個父類中包含同名的類方法。對于這種情況,Python 的處置措施是:根據子類繼承多個父類時這些父類的前后次序決定,即排在前面父類中的類方法會覆蓋排在后面父類中的同名類方法。p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

舉個例子:p9l少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

class People:     def __init__(self):         self.name = People     def say(self):         print("People類",self.name) class Animal:     def __init__(self):         self.name = Animal     def say(self):         print("Animal類",self.name) #People中的 name 屬性和 say() 會遮蔽 Animal 類中的 class Person(People, Animal):     pass zhangsan = Person() zhangsan.name = "張三" zhangsan.say()

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 91成人网 | 久久久久久免费精品一区二区三区 | 成人一区二区三区四区 | 久久精品日| 欧美日韩精品一区二区三区 | 亚洲一区二区精品在线 | 日韩精品影片 | 亚洲福利网 | 男人的天堂亚洲 | 成人免费视频网站在线看 | 久久影视一区 | 欧美日韩国产大片 | 日韩欧美一区二区三区久久婷婷 | 国产三区精品 | 国产精品久久久久久久久久久新郎 | 久久国产日韩 | www.超碰在线 | 国内免费精品视频 | 国产精品免费一区二区三区在线观看 | 97人人草| 欧洲免费vps一级毛片 | 亚洲成人精品一区二区三区 | 国产小视频在线播放 | 精品一区在线 | 久久久精品视频国产 | 亚洲欧美综合久久 | 青青草这里只有精品 | 一区二区三区回区在观看免费视频 | 国产夜夜草 | 曰韩一二三区 | 99国产精品99久久久久久 | 天堂a√在线 | 国产午夜精品一区二区三区四区 | 久久久91精品国产 | 久久av网站| 国产一区高清 | 国产成人精品一区二区三区视频 | 嘿咻免费视频观看午夜 | 亚洲国产91| 91免费观看视频 | 国产视频一区二区三区四区 |