python 基礎 私有屬性

2022-03-27 03:32:56 字數 1083 閱讀 7324

python 私有屬性以兩個下劃線開頭。

python 私有屬性只能在類內部訪問,類外面訪問會出錯。

python 私有屬性之所以不能在外面直接通過名稱來訪問,其實質是因為 python 做了一次名稱變換。

python 保護屬性和公開屬性都可以在類外面直接訪問。

class

newclass(object):

def__init__

(self):

self.public_field = 5 #

public

self.__private_field = 10 #

private

self._protect_field = 99 #

protect

def__private_method

(self):

print

"i am private method

"def

public_method(self):

print

"i am public method

"test =newclass()

print

test.public_field

test.public_method()

print test.__dict__##

使用變換過後的名稱訪問,success

print test._newclass__private_field #

10

test._newclass__private_method() #

i am private method

#直接訪問,fail

print test.__private_field

#attributeerror: 'newclass' object has no attribute '__private_field'

test.__private_method() #

attributeerror: 'newclass' object has no attribute '__private_method'

python 私有屬性和視為私有屬性

python模組中的視為私有屬性 總的來說,python中有 幾種特殊的屬性 在python模組中,我們經常會見到 x 其中後面兩種 x 是習慣上的私有變數,我們不應該在外部使用它,而是應該通過呼叫內部函式來使用,但這裡是不應該而不是不能,所以要靠我們自覺遵守這個標準,另外,在自定義模組的時候,也要...

python類私有屬性

python中沒有private關鍵字,想要建立乙個類私有的變數需要通過命名規則來實現 在變數名之前加兩個下劃線 name,則在類外部就不能直接通過例項.name訪問,具體原理python編譯器將其命名修改為了 類名 name,通過其實例項.類名 name還是可以訪問 class test obje...

python 私有屬性,繼承

多繼承 coding utf 8 file 多繼承.py date 2018 07 22 9 12 am desc 多繼承與單繼承 class a deftest self print 這是a test方法 defdemo self print 這是a demo方法 class b defdemo ...