第九章 類的重用上

2021-10-11 18:41:03 字數 2444 閱讀 5636

python 同樣支援類的繼承,如果一種語言不支援繼承,類就沒有什麼意義。派生類的定義如下所示:

class derivedclassname(baseclassname1):

baseclassname(示例中的基類名)必須與派生類定義在乙個作用域內。除了類,還可以用表示式,基類定義在另乙個模組中時這一點非常有用:

class derivedclassname(modname.baseclassname):

例題:

class people:

name = ' '

age = 0

__weight = 0                                 #定義私有屬性,私有屬性在類外部無法直接進行訪問

def __init__(self,n,a,w):                #定義構造方法

self.name = n

self.age = a

self.__weight = w

def speak(self):

print("%s 說: 我 %d 歲。" %(self.name,self.age))

class student(people):                          #單繼承示例

grade = ' '

def __init__(self,n,a,w,g):                 #呼叫父類的構函

people.__init__(self,n,a,w)

self.grade = g #覆寫父類的方法

def speak(self):

print("%s 說: 我 %d 歲了,我在讀 %d 年級"%(self.name,self.age,self.grade))

s = student('ken',10,60,3)

s.speak()

輸出結果為:

ken 說: 我 10 歲了,我在讀 3 年級

python同樣有限的支援多繼承形式。多繼承的類定義形如下例:

class derivedclassname(base1, base2, base3):

需要注意圓括號中父類的順序,若是父類中有相同的方法名,而在子類使用時未指定,python從左至右搜尋 即方法在子類中未找到時,從左到右查詢父類中是否包含方法。

例題:

class people:

name = ' '

age = 0                                     

__weight = 0                                      #定義私有屬性,私有屬性在類外部無法直接進行訪問

def __init__(self,n,a,w):                     #定義構造方法

self.name = n

self.age = a

self.__weight = w

def speak(self):

print("%s 說: 我 %d 歲。" %(self.name,self.age))

#單繼承示例

class student(people):

grade = ' '

def __init__(self,n,a,w,g): #呼叫父類的構函

people.__init__(self,n,a,w)

self.grade = g #覆寫父類的方法

def speak(self):

print("%s 說: 我 %d 歲了,我在讀 %d 年級"%(self.name,self.age,self.grade))

#另乙個類,多重繼承之前的準備

class speaker():

topic = ' '

name = ' '

def __init__(self,n,t):

self.name = n

self.topic = t

def speak(self):

print("我叫 %s,我是乙個演說家,我演講的主題是 %s"%(self.name,self.topic))

#多重繼承

class sample(speaker,student):

a =' '

def __init__(self,n,a,w,g,t):

student.__init__(self,n,a,w,g)

speaker.__init__(self,n,t)

test = sample("tim",25,80,4,"python")

test.speak()                                            #方法名同,預設呼叫的是在括號中排前地父類的方法

輸出結果:

我叫 tim,我是乙個演說家,我演講的主題是 python

第九章 類的重用

一 什麼是繼承?1 繼承是類與類間的關係。2 是一種什麼 是 什麼的關係。3 繼承功能就是用來解決 重用的問題。1 繼承 是一種建立新類的方式,python中,1 新建的類可以繼承乙個或多個父類。2 父類可以成為基類或超類。3 所新建的類稱為子類或派生類。2 類繼承的數量 python中類的繼承分為...

第九章 聚類

目錄聚類的方法 效能度量 距離計算 k means演算法 學習向量量化 密度聚類 層次聚類 聚類任務,簡而言之就是無監督學習,訓練資料沒有標籤,目的是為了分類。現實生活中常常會有這樣的問題 缺乏足夠的先驗知識,因此難以人工標註類別或進行人工類別標註的成本太高。很自然地,我們希望計算機能代我們完成這些...

第九章 聚類 Clustering

unsupervised learning 無監督學習 訓練樣本的標記資訊是未知的,通過對無標記資料的訓練來找出資料內部所存在的規律以及性質 為進一步的資料分析打下基礎 知識點 聚類過程中會自動的形成簇結構,但是演算法對簇 cluster 沒有概念,這是在運算過程中自己出現的聚類現象,這個簇的名字需...