python 類的私有屬性和方法

2021-09-12 09:07:07 字數 783 閱讀 5752

1.在類中以雙下劃線(__)開頭的屬性和方法即為私有屬性和方法,類的例項在外部無法直接呼叫,而在類中可以正常訪問;

2.python的內部實現過程:

3.因此a.__num 會報錯,而a._a__num就可以正常訪問私有屬性了;

classa(

object):

def__init__

(self)

: self.data =

1 self.__num =

10def

test

(self)

:print

(self.__num)

#可正常訪問私有屬性

def__test

(self)

:print

("私有方法"

)

a = a(

)print

(a.__dict__)

#列印例項a的所有屬性:

print

(dir

(a))

print

(a.__dir__())

a.test(

)#列印10,私有屬性可通過類方法訪問

print

(a._a__test(

),a._a__num)

#例項可通過此方法訪問私有屬性和方法

print

(a.__test(

),a.__num)

#報錯,例項無法訪問私有屬性

python類的私有屬性和方法

python 對於類的成員沒有嚴格的訪問控制限制 關於私有 屬性和私有方法,有如下要點 兩個下劃線開頭的屬性是私有的 private 其他為公共的 public 類內部可以訪問私有屬性 方法 類外部不能直接訪問私有屬性 方法 外部可以通過 類名 私有屬性 方法 名 訪問私有屬性 方法 class s...

Python 類的私有屬性和私有方法

xx 公有變數 xx 公有變數或方法,不能通過import匯入其他模組 只有模組內部使用 類物件和子類可以訪問 xx 私有變數或方法 偽私有 類外部不能直接訪問。xx 公有變數或方法,子類可以訪問。魔法方法或屬性 例如 init 不推薦這樣命名。xx 公有變數或方法。一般為了避免和python關鍵字...

類的私有屬性和私有方法

class role def init self,name,role,weapon,value 100,money 1500 建構函式 self.name name 例項變數 靜態屬性 作用域就是實力本身 self.role role self.weapon weapon self.value va...