學習日記0821組合 多型 封裝

2022-08-13 00:24:28 字數 1202 閱讀 1361

1 組合

什麼是組合:

組合就是有乙個物件它擁有乙個屬性,該屬性是另乙個物件

1

class

foo:

2pass

3class

bar:

4pass

5 a=foo()

6 b=bar()

7 b.attrd = a

為何要使用組合:

通過向乙個類新增屬性的方式,可以將兩個類聯絡在一起

2多型於多型性

什麼是多型: 多型指的是一種事物的不同組合

多型的精髓就是:統一

不崇尚的方法:

import

abcclass people(metaclass=abc.abcmeta):

@abc.abstractmethod

defa():

pass

@abc.abstractmethod

defb():

pass

class

a(people):

def a(): #

此時格式被固定死了,必須有函式a和函式b

print

(a)

defb():

pass

鴨子方法:

class

people:

defa():

pass

defb():

pass

class

a):

def a():

print

(a)

defb():

pass

3 封裝

什麼是封裝:

封:代表將存放於命名空間的名字隱藏起來,這種隱藏對外不對內

裝:向容器/命名空間中存入名字

總結:1 __開頭的屬性沒有真正的被隱藏,只是一種語法形式上的改寫,並不是真正的限制外部的訪問

2 該變形只在定義的階段進行一次,之後再新增的__開頭的屬性,不會再進行變形

3 如果父類的屬性不想被子類覆蓋,就在屬性的前面新增__

物件導向(三) 組合 封裝

封裝訪問限制機制 property 什麼是組合 組合指的是乙個物件中,包含乙個或多個物件 為什麼使用組合 減少 冗餘,降低耦合度 如何使用組合 繼承 繼承是類與類的關係,子類繼承父類的屬性 方法,子類與父類是一種從屬關係。組合 組合是物件與物件的關係,乙個物件擁有另乙個物件中的屬性 方法,是一種什麼...

力扣日記 039 組合總和 回溯演算法

給定乙個無重複元素的陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的數字可以無限制重複被選取。解集不能包含重複的組合。第一次做回溯演算法,磨磨唧唧乙個多小時總歸做出來了。class soluti...

力扣日記 040 組合總和II 回溯演算法

給定乙個陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的每個數字在每個組合中只能使用一次。說明 所有數字 包括目標數 都是正整數。解集不能包含重複的組合。回溯演算法,主體類似組合總和 i cla...