Python學習筆記 22

2021-09-21 02:01:20 字數 1523 閱讀 8264

物件導向三大特徵及作用:

多型我自己簡單總結一句話:使用方法(或者其他…)時,不用考慮物件型別,適用性強,比如常見的len( )

# 多型

# 狗(哈士奇,泰迪,金毛。。)

# 乙個物件可以以不同的形態去呈現

classa:

def__init__

(self,name)

: self._name = name

@property

defname

(self)

:return self._name

@name.setter

defname

(self,name)

: self._name = name

classb:

def__init__

(self,name)

: self._name = name

@property

defname

(self)

:return self._name

@name.setter

defname

(self,name)

: self._name = name

a = a(

'小王'

)b = b(

'老劉'

)# 對於say_hello( )函式來說,只要物件中含有name屬性,他就可以作為引數傳遞

# 這個函式並不會考慮物件的型別,只要有name屬性即可

# 典型多型:

defsay_hello

(obj)

:print

('你好 %s'

%obj.name)

say_hello(a)

say_hello(b)

# say_hello_2( )做了型別檢查,違反了多型的函式,只適用於一種型別的物件,

# 無法處理其他型別的物件,導致函式的適應性非常差

# 注意:像isinstance( )這種使用了會違反多型的函式,開發中一般不會使用

defsay_hello_2

(obj):if

isinstance

(obj,a)

:print

('你好 %s'

%obj.name)

# 多型典型:

# 鴨子例子

# 如果乙個東西,走路像鴨子,叫聲像鴨子,那麼他就是鴨子

# len( )

# 之所以乙個物件能通過len( )獲取長度,是因為物件有乙個特殊方法__len__

# 只要物件中有__len__特殊方法,就能夠通過len( )來獲取它的長度

l =[1,

2,3]

s ='hello'

print

(len

(l))

print

(len

(s))

22 Python基礎學習筆記1

練習題 1.簡述編譯型與解釋型語言的區別,且分別列出你知道的哪些語言屬於編譯型,哪些屬於解釋型 編譯型語言 就好比一本教科書,不管用到哪乙個知識點,編譯型語言首先做的就是先將整本書所涉及的知識點都解釋一遍。比如輸入一串命令,先標準輸入,然後根據編譯環境去找到翻譯內容,傳給計算機,最後cpu處理 解釋...

C 學習筆記 22

在c 中,auto ptr是乙個類,它用來實現對動態分配物件的自動釋放。建構函式與析構函式 auto ptr在構造時獲取對某個物件的所有權 ownership 在析構時釋放該物件。我們可以這樣使用auto ptr來提高 安全性,類似下面的 int p new int 0 auto ptr ap p ...

學習筆記2 2續

定義 dp i 1 j 前i種數字是否能構成j 為了用前i種數字加和成j,也就需要能用前i 1種數字加和成j,j ai,j mi x ai中的某一種。我們可以定義如下遞推關係 dp i 1 k 0 k mi且k x ai j時存在dp i j k x ai 為真的k int n,k,a maxn m...