Python基礎知識學習11 物件導向之 繼承

2021-10-24 14:44:26 字數 2801 閱讀 9759

語法:

class 類名(object):

**

python物件導向的繼承指的是多個類之間的所屬關係,即子類預設繼承父類的所有屬性和方法。在python中,所有類預設繼承object類,object類是頂級類或基類;其他子類叫做派生類。

單繼承:一對一,子類對父類的繼承。

# 1. **類

class master(object):

def __init__(self):

self.kongfu = '[獨門拳法]'

def make_cake(self):

print(f'運⽤進行比武')

# 2. 徒弟類

class prentice(master):

pass

# 3. 建立物件

daqiu daqiu = prentice()

# 4. 物件訪問實例屬性

print(daqiu.kongfu)

# 5. 物件調⽤用例項方法

daqiu.make_cake()

多繼承意思就是乙個類同時繼承了多個父類。

# 父類

class master(object):

def __init__(self):

self.kongfu = '[獨門拳法]'

def make_cake(self):

print(f'運用進行比武')

# 為了驗證多繼承,建立學校類

class school(object):

def __init__(self):

self.kongfu = '[武林第一拳法]'

def make_cake(self):

print(f'運用進行比武')

# 定義子類,繼承兩個父類

class prentice(school, master):

pass

# 用徒弟類建立物件,呼叫例項屬性和方法

daqiu = prentice()

print(daqiu.kongfu)

daqiu.make_cake()

# 結論:如果乙個子類繼承多個父類,優先繼承第乙個父類的屬性和方法。

# 父類

class master(object):

def __init__(self):

self.kongfu = '[獨門拳法]'

def make_cake(self):

print(f'運用進行比武')

# 為了驗證多繼承,建立學校類

class school(object):

def __init__(self):

self.kongfu = '[武林第一拳法]'

def make_cake(self):

print(f'運用進行比武')

# 獨創配方

class prentice(school, master):

def __init__(self):

self.kongfu = '[獨創武術]'

def make_cake(self):

print(f'運用進行比武')

# 用徒弟類建立物件,呼叫例項屬性和方法

daqiu = prentice()

print(daqiu.kongfu)

daqiu.make_cake()

print(prentice.__mro__)

子類和父類具有同名屬性和方法,預設使用子類的同名屬性和方法。

class master(object):

def __init__(self):

self.kongfu = '[獨門拳法]'

def make_cake(self):

print(f'運用進行比武')

class school(object):

def __init__(self):

self.kongfu = '[武林第一拳法]'

def make_cake(self):

print(f'運用進行比武')

class prentice(school, master):

def __init__(self):

self.kongfu = '[獨創拳法]'

def make_cake(self):

# 如果是先呼叫了父類的屬性和方法,父類屬性會覆蓋子類屬性,故在呼叫屬性前,先呼叫自己子類的初始化。 self.__init__()

print(f'運用進行比武')

# 呼叫父類方法,但是為保證呼叫到的也是父類的屬性,必須在呼叫方法前呼叫父類的初始化。

def make_master_cake(self):

master.__init__(self)

master.make_cake(self)

def make_school_cake(self):

school.__init__(self)

school.make_cake(self)

daqiu = prentice()

daqiu.make_cake()

daqiu.make_master_cake()

daqiu.make_school_cake()

daqiu.make_cake()

使用super() 可以自動查詢父類。呼叫順序遵循 __mro__ 類屬性的順序。比較適合單繼承使用。

繼承的特點:

python基礎知識學習第11天

1.findall函式 import re s 123abc456eabc789 re.findall r abc s 結果 abc abc 返回結果是乙個列表,中間存放的是符合規則的字串,如果沒有符合規則的字串被找到,就返回乙個空列表。2.compile函式 s 111,222,aaa,bbb,c...

Python總結 基礎知識 11

裝飾器本身就是乙個函式,主要用於為函式新增額外功能。如插入日誌 效能測試等。from functools import wraps def log flag def decorate func wraps func def wrap args,kwargs try if flag func args...

Android學習(11) 基礎知識

1.兩個常見概念 sdk software development kit 軟體開發工具包 ndk native development kit android原生工具開發包 2.android系統架構3.android的兩個重要意義的版本 android2.3 號稱最穩定的版本,也是以前裝機量最大...