Python3 類和物件 繼承

2021-10-01 09:30:55 字數 2402 閱讀 1135

class derivedclassname(baseclassname):

子類                             父類

如果子類中定義與父類同名的方法或屬性,則會自動覆蓋父類對應的方法或屬性,父類中的方法不受影響

1、呼叫未繫結的父類方法

class

a():

def__init__

(self):

print("

進入a…")

print("

離開a…")

class

b(a):

def__init__

(self):

print("

進入b…")

a.__init__

(self)

print("

離開b…")

2、使用super函式

class

a():

def__init__

(self):

print("

進入a…")

print("

離開a…")

class

b(a):

def__init__

(self):

print("

進入b…")

super.

__init__

(self)

print("

離開b…")

super函式可以在你沒有給定任何基類的名字時,它會自動幫你找出所有基類以及對應的方法

class derivedclassname(base1,base2,base3):

class

a():

def__init__

(self):

print("

進入a…")

print("

離開a…")

class

b(a):

def__init__

(self):

print("

進入b…")

a.__init__

(self)

print("

離開b…")

class

c(a):

def__init__

(self):

print("

進入c…")

a.__init__

(self)

print("

離開c…")

class

d(b, c):

def__init__

(self):

print("

進入d…")

b.__init__

(self)

c.__init__

(self)

print("

離開d…")

>>> d =d()

進入d…

進入b…

進入a…

離開a…

離開b…

進入c…

進入a…

離開a…

離開c…

離開d…

#a被呼叫了兩次

解決方法:使用super函式

class

a():

def__init__

(self):

print("

進入a…")

print("

離開a…")

class

b(a):

def__init__

(self):

print("

進入b…")

super().

__init__

()

print("

離開b…")

class

c(a):

def__init__

(self):

print("

進入c…")

super().

__init__

()

print("

離開c…")

class

d(b, c):

def__init__

(self):

print("

進入d…")

super().

__init__

()

print("

離開d…")

>>> d =d()

進入d…

進入b…

進入c…

進入a…

離開a…

離開c…

離開b…

離開d…

python3類和物件

類的定義和例項化 python定義簡單類如下。class car object pass c1 car 我們定義了乙個car類,其中什麼方法也沒有實現。c1是我們實力化的類 car,成為了乙個物件 可變引數 列表,字典,set 不可變引數 string,number,元組 全域性變數 宣告在函式外,...

python3 類的繼承

基本語法 class derivedclassname baseclassname1 1 需要注意圓括號中父級類的順序,若是父級類中有相同的方法名,而在子類使用時未指定,python從左至右搜尋 即方法在子類中未找到時,從左到右查詢父級類中是否包含方法。示例 class a object pass ...

Python3 類的繼承

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