python3 類的繼承

2021-08-09 19:07:45 字數 2925 閱讀 5153

基本語法:

class

derivedclassname

(baseclassname1):

1>..

.

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

示例:

class

a(object):

pass

class

b(object):

pass

class

c(a, b):

pass

c 繼承了 a 和 b,c 稱為 a,b 的派生類,c 可以直接獲取 a 和 b 裡面定義的所有方法和變數

派生類在尋找變數和方法的時候,優先尋找自身的方法和變數,最後在去繼承的類裡面去尋找。

類自身的__init__方法不會被其他類呼叫。但是可以呼叫。參考繼承示例

繼承示例

# 定義基本類

class

people

():#定義基本屬性

name = ''

age = 0

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

__weight = 0

#定義構造方法構造器

def__init__

(self,n,a,w):

self.name = n

self.age = a

self.__weight = w

defspeak

(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

# 覆蓋寫入父類的方法

defspeak

(self):

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

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

s.speak()

父級類的__init__方法可以被子級的類呼叫

子級類如果包含和父級類一樣的變數或方法,會在呼叫的時候,覆蓋父級類的變數或方法。

示例

class

derivedclassname

(base1, base2, base3):

1>..

.

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

若子類中有相同的方法或變數,優先呼叫子類的方法或變數

#類定義

class

people:

#定義基本屬性

name = ''

age = 0

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

__weight = 0

#定義構造方法

def__init__

(self,n,a,w):

self.name = n

self.age = a

self.__weight = w

defspeak

(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

#覆寫父類的方法

defspeak

(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

defspeak

(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() #方法名同,預設呼叫的是在括號中排前地父類的方法

Python3 類的繼承

coding utf 8 物件導向程式設計的三個特點 封裝 繼承 多型 函式是封裝 的基本單位,類和物件的封裝是屬於更高階的封裝方式 在類中經常會宣告一些物件屬性,用來儲存資料的,在類中宣告的函式,是用來運算元據的,不同的功能可以封裝成不同的函式 繼承 特點 1.子類繼承父類,子類擁有父類的所有屬性...

Python3 類的繼承

目錄初識繼承 尋找繼承關係 繼承背景下的物件屬性查詢順序 派生新式類和經典類 鑽石繼承 通過繼承實現修改json模組資料型別 繼承指的是一種新建類的方法,新建的類稱之為子類或者派生類 子類繼承的類叫做父類,也稱之為基類或者超類 繼承的目的是減少 的冗餘 減少重複 在定義類時候,通過class 子類 ...

Python3 類和物件 繼承

class derivedclassname baseclassname 子類 父類 如果子類中定義與父類同名的方法或屬性,則會自動覆蓋父類對應的方法或屬性,父類中的方法不受影響 1 呼叫未繫結的父類方法 class a def init self print 進入a print 離開a class...