python 物件導向那些事 2

2021-10-10 10:14:12 字數 2840 閱讀 2251

1、乙個物件的屬性可以是另外乙個類建立的物件。

class

gun:

def__init__

(self, model)

: self.model = model

self.bullet_count =

0def

add_bullet

(self, count)

: self.bullet_count+= count

defshoot

(self)

:if self.bullet_count <=0:

print

("[%s] 沒有子彈了。。"

%self.model)

return

self.bullet_count -=

1print

("[%s] .... [%d]"

%(self.model, self.bullet_count)

)ak47 = gun(

"ak47"

)#ak47.add_bullet(50)

#ak47.shoot()

class

soldier

:def

__init__

(self, name)

: self.name = name

self.gun =

none

deffire

(self)

:if self.gun is

none

:print

("[%s] has no gun"

%self.name)

return

print

("衝啊。。。"

) self.gun.add_bullet(50)

self.gun.shoot()

m = soldier(

"lanbo"

)m.gun = ak47

m.fire(

)

2、私有屬性就是物件不希望公開的屬性,私有方法就是物件不希望公開的方法。

3、屬性名或方法名前加兩個下劃線就變成了私有的。

class

girl

:def

__init__

(self, name)

: self.name = name

self.__age = age

def__secret

(self)

:# 在物件的方法內部,是可以訪問物件的私有屬性的

print

("%s 的年齡是 %d"

%(self.name, self.__age))

jingjing = girl(

"xiangyi",18

)# 私有屬性在外界不能夠被直接訪問

# 私有方法,通用不允許在外界直接訪問

4、類的三大特性

5、繼承:子類擁有父類的所有屬性和方法。

6、繼承語法:

class 類名(父類名):

pass

#佔位符

7、方法的重寫,父類的方法不能滿足子類的需要。

class

dog:

defeat

(self)

:print

("eat"

)def

drink

(self)

:print

("drink"

)def

run(self)

:print

("run"

)def

sleep

(self)

:print

("sleep"

defbark

(self)

:print

("bark"

)class

xiaotianquan

(dog)

:def

fly(self)

:print

("fly"

)def

bark

(self)

:#如果子類中重寫了父類的方法

#在使用子類物件呼叫方法時,會呼叫子類重寫的方法

print

("ffafsdjfajdsjaj")

xtq = xiaotianquan(

)

8、對父類方法進行擴充套件,子類的方法實現包含父類的方法實現,父類原本封裝的方法實現是子類方法的一部分,使用super().父類方法 來呼叫父類方法的執行。

class

xiaotianquan

(dog)

:def

fly(self)

:print

("fly"

)def

bark

(self)

:1、針對子類特有需求,編寫**

print

("ffafsdjfajdsjaj"

)2、使用super

(),呼叫原本在父類的方法

super()

.bark(

)3、增加其他子類diamond

print

("lsieslj jfjjfsji"

)

9、多繼承可以讓子類物件,同時具有多個父類的屬性和方法。

10、內建屬性 __mro__可以檢視方法搜尋順序。

11、object類是python3中所有類的基類。

12、多型以繼承和重寫父類方法為前提,是呼叫方法的技巧,不會影響到類的內部設計。

python 物件導向那些事 3

1 例項和物件的基本概念 定義工具類,輸出建立了多少工具物件 class tool object count 0def init self,name self.name name tool.count 1 tool 1 tool 剪刀 tool 2 tool 滑鼠 print tool.count ...

Python之物件導向的那些事

物件導向 需要有意義的物件導向的 不是有了類就是物件導向核心 類 物件 例項化方法和函式的區別 方法 設計層面 函式 程式運形,過程式一種稱謂 物件 物件是現實世界或者思維世界中的實體在計算機中的反映,它將資料以及這些資料上的操作封裝在一起 類 一類事物的統稱,物件是類具體化的產物,也就是例項化 不...

物件導向的那些事

繼承 將多個類中具有的同種功能和同種變數抽離出來讓其他類與這個類產生聯絡 多型 事物在不同的時候有不同的表現形式,也就是可以將不同的子類當成父類來看比如你現在是兒子但是在你兒子眼裡你就是父親 繼承 1 子類能夠繼承父類的絕大多數屬性,但是父類私有的不能被繼承,final修飾的方法不能被子類重寫,被f...