物件導向中,繼承,多型,傳遞是乙個重點知識。
子類繼承父類,子類擁有父類的屬性和方法
class
animal
:def
eat(self)
:print
('吃'
)def
drink
(self)
:print
('喝'
)def
run(self)
:print
('跑'
)# animal為父類,dog 為 animal 的子類
class
dog(animal)
:def
bark
(self)
:print
('旺旺旺'
)# 子類繼承父類的屬性和方法
dog = dog(
)dog.run(
)dog.eat(
)# 子類擁有自己的屬性和方法
dog.bark(
)>>
>跑吃
旺旺旺
子類繼承父類的父類,子類擁有父類的父類屬性和方法
可理解: 兒子像他爸也像他爺爺
class
animal
:def
eat(self)
:print
('吃'
)def
drink
(self)
:print
('喝'
)def
run(self)
:print
('跑'
)class
dog(animal)
:def
bark
(self)
:print
('旺旺旺'
)class
xiaotianquan
(dog)
:def
fly(self)
:print
('我會飛'
)
dog = xiaotianquan(
)dog.fly(
)dog.bark(
)dog.eat(
)>>
>
我會飛旺旺旺
吃
子類同時繼承多個父類,同時擁有多個父類的屬性和方法
# 盡量避免父類之間的方法/屬性重名,若重名根據繼承順序執行重名方法/屬性
classa:
deftest
(self)
:print
('aaaa'
)def
first
(self)
:print
('a-------'
)classb:
defobject
(self)
:print
('bbbbb'
)def
first
(self)
:print
('b-------'
)class
d(a,b)
:pass
d = d(
)d.test()d.
object()
d.first(
)>>
>
aaaa
bbbbba--
----
-
mro
檢視子類的繼承順序
搜尋屬性/方法的順序,先從自身找,再從父類…基類, 沒有則報錯
classa:
deffirst
(self)
:print
('a-------'
)classb:
deffirst
(self)
:print
('b-------'
)class
d(a,b)
:pass
d = d(
)d.first(
)print
(d.__mro__)
>>
>a--
----
-(<
class
'__main__.d'
>
,<
class
'__main__.a'
>
,<
class
'__main__.b'
>
,<
class
'object'
>
)
方法重寫
class
dog:
defbark
(self)
:print
('旺旺旺'
)class
xiaotianquan
(dog)
:def
bark
(self)
:print
('神犬,嗷嗷嗷'
)# 當父類的屬性不滿足子類時,可在子類中重寫,覆蓋父類的方法
dog = xiaotianquan(
)dog.bark(
)>>
>
神犬,嗷嗷嗷
方法重構
保留父類的方法,新增功能
class
dog:
defbark
(self)
:print
('旺旺旺'
)class
xiaotianquan
(dog)
:# 當父類的方法不滿足子類的需求,可以在父類的方法基礎上增加功能
defbark
(self)
:print
('神犬'
)# 呼叫父類的方法
super()
.bark(
)print
('我還會fei'
)
dog = xiaotianquan(
)dog.bark(
)>>
>
神犬旺旺旺
我還會fei
Python物件導向(繼承二)
主要內容 class parent def init self,race,country self.race race self.country country def information self print 我來自 是 人 format self.country,self.race def ...
python 面向繼承物件 繼承
1.python物件導向的繼承指的是多個類之間的所屬關係,即預設繼承父類的所有屬性和方法。2.注意 當乙個類有多個父類的時候,預設使用第乙個父類的同名屬性和方法。3.檢視某個類的繼承關係 物件.mro 4.子類呼叫父類的同名方法和屬性 class a object definit self self...
python 物件導向繼承
coding utf 8 author martin date 2017 10 15 class f def f1 self print f.f1 class s f deff1 self super s,self f1 執行父類的方法,第一種方式,常用這種方式 f.f1 self 執行父類的方法,...