回顧類與物件 屬性私有化

2022-05-18 15:34:15 字數 1673 閱讀 9842

類:型別,資料型別的簡稱;

物件:實體。型別所表現出的乙個例項。

物件具有封裝、繼承、多型三大特徵。

類:型別名稱 屬性 方法。

通過 class 關鍵字來自定義型別

通過 __init__() 函式,初始化類屬性資料。

建立物件:和執行函式一樣,通過類名建立;

使用物件屬性:物件的引用變數.屬性名稱;

使用物件方法:物件的引用變數.方法

建立物件的過程:

a) 建立物件 呼叫__new__()函式,申請記憶體位址,建立物件;

b) 給建立好的物件,初始化物件的資料,自動呼叫__init__() 函式,給物件的屬性賦值;

關於建立好的物件賦值給變數,變數的型別存放資料問題

a) 變數 = 類名稱()   建立物件,引用位址賦值給變數

b) 變數(記憶體位址)  堆記憶體中的物件

對物件的屬性限制:

1

__slots___ = [ 「 」 ,「 」 , 「 」] #先宣告一些可能用到的屬性

屬性私有化

1

class

person ( object ):23

def__init__

( self ):

45 self.name = 「old_wang」 #

普通屬性,表示公共屬性

67 self._weight = 「50kg」 #

約定,乙個下劃線開頭的,表示私有屬性89

#規則:兩個下劃線開頭的屬性,不能被外界直接訪問

10 self.__belief = 「你的劍就是我的劍」

提供 get / set 函式來間接訪問物件的私有屬性:

1

#給私有屬性設定值的方法:23

defset_belief(self,believe):

45 self.__belief =believe67

#獲取私有屬性資料的方法:89

defget__belief ( self ):

1011

return self.__belief

建立乙個物件並訪問其屬性:

1 p =person()23

print

(p.name)45

print

(p._weight)67

print(p.get_belief())

高階封裝——隱藏 get / set 方法:

使用@property 和 @setter 來將方法,擴充套件成屬性的使用方式

@property @method.setter:

將方法隱藏起來,提高**的安全性

@property       #

給獲取值的方法,新增@property

defbelief(self):

return self.__belief

@name.setter

defbelief(self,b):

self.

__belief =b

a =person()

a.belief = 「我的劍還是我的劍」

python 私有化屬性

python 沒有和其他程式語言一樣的定義共有屬性和私有屬性的關鍵字,實現屬性私有化和屬性保護,都是使用 格式進行的偽效果。私有化使用場景 保護屬性 比如銀行存款等,存款直接外放非常危險,就可以私有化,然後通過類提供的方法增加刪減鉛筆的金額,對存款進行保護。內部過濾 過濾一下不符合屬性的資料,資料不...

Python特性 屬性以及私有化

特性是物件內部的變數 物件的狀態由它的特性來描述,物件的方法可以改變它的特性 可以直接從物件外部訪問特性 定義 class person name yoda 類中特性 defget name self 通過訪問器方法訪問特性 return self.name defset name self,val...

Python中屬性的私有化

1.引入 在python物件導向程式設計過程中,修改類屬性都是直接通過類名修改的,如果有些重要的屬性不希望他人任意修改怎麼辦呢?這就要用到屬性私有化功能。2.概念 保護屬性安全,使其不能隨意修改,將屬性定義為私有屬性,新增乙個可呼叫的方法去使用。3.語法 兩個下劃線開頭,宣告該屬性為私有,不能在類的...