python 物件導向 封裝

2022-05-11 15:27:47 字數 2493 閱讀 4611

1.私有屬性

class

person(object):

def__init__

(self,name,age):

self.name =name

self.age = age #

例項屬性

self.attack_val = 30self.

__life_val = 100 #

前面加兩個下劃線就是私有變數,私有屬性

a = person('

wdc',22)

print(a.age) #

例項屬性可以直接外面使用和修改

print(a.__life_val) #

私有屬性外面不可以使用和修改

2.私有屬性的用法

class

person(object):

def__init__

(self,name,age):

self.name =name

self.age = age #

例項屬性

self.attack_val = 30self.

__life_val = 100 #

前面加兩個下劃線就是私有變數,私有屬性

defget_life_val(self):

print(self.__life_val) #

可以在類的內部用方法呼叫

return self.__life_val

#也可以在類的內部用方法返回屬性的值

def got_life_val(self): #

只能通過內部方法修改私有屬性的值

self.__life_val = self.__life_val - 20a = person('

wdc',22)

b = a.get_life_val() #

呼叫私有屬性的方法,並接收返回值

print

(b)a.got_life_val()

#執行內部方法修改私有屬性

b = a.get_life_val() #

呼叫私有屬性的方法,並接收返回值

3.對方法的封裝

class

person(object):

def__init__

(self,name,age):

self.name =name

self.age =age

def__breath(self): #

將方法封裝

print('

{}在呼吸

'.format(self.name))

defattack(self):

self.

__breath() #

只能通過內部的其他方法去呼叫私有方法

4.如果非要在外部訪問或者修改私有屬性或者方法可以使用:例項名._類名+方法名()

class

person(object):

def__init__

(self,name,age):

self.name =name

self.age =age

self.

__life_val = 100

def__breath(self): #

將方法封裝

print('

{}在呼吸

'.format(self.name))

defattack(self):

self.

__breath() #

只能通過內部的其他方法去呼叫私有方法

defget_life_val(self):

print(self.__life_val

)a = person('

wdc',22)

a.attack()

#例項名._類名+方法名()

a._person__breath() #

呼叫私有方法

a._person__life_val = 10 #

修改私有屬性

注意:例項建立完成後,在外面建立不了私有屬性。即使在外面使用a.__wdc = 123建立了屬性__wdc,這個屬性也不具備私有性質。

Python 物件導向,封裝

封裝來了 封裝是啥?封裝就好像把你需要的東西裝到盒子裡然後用封口膠把空封起來。照這種邏輯看,封裝 隱藏 哪在python中怎麼看出來隱藏呢?在python中用雙下劃線開頭的方式將屬性隱藏起來 設定成私有的 類中所有雙下劃線開頭的都會自動變形成 類名 x的形式 就是把函式跟方法給封裝起來 定義裡兩個類...

Python物件導向04 物件導向封裝案例

封裝是物件導向程式設計的一大特點 物件導向程式設計的第一步 將屬性和方法封裝到乙個抽象的類中 外界使用類建立物件,然後讓物件呼叫方法物件方法的細節都被封裝在類的內部需求 小明體重75.0公斤 小明每次跑步會 0.5公斤 小明每次吃東西體重增加1公斤 class person 人類 def init ...

Python物件導向05 物件導向封裝案例 II

封裝 封裝是物件導向程式設計的一大特點 物件導向程式設計的第一步 將屬性和方法封裝到乙個抽象的類中 外界使用類建立物件,然後讓物件呼叫方法物件方法的細節都被封裝在類的內部乙個物件的屬性可以是另外乙個類建立的物件 需求 士兵許三多有一把ak47士兵可以 槍能夠發射子彈 槍裝填裝填子彈 增加子彈數量sh...