物件導向三大特徵及作用:多型我自己簡單總結一句話:使用方法(或者其他…)時,不用考慮物件型別,適用性強,比如常見的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...