1. 程式人生 > >訪問類中私有屬性的方式(兩種)

訪問類中私有屬性的方式(兩種)

1.首先要理解私有屬性:

   私有屬性主要是指  Python中單下劃線和雙下劃線的區別  (比較直白的意思是:)

_x: 單前置下劃線,私有化屬性或方法,from somemoudle import *禁止匯入,類物件和子類可以訪問

__xx:雙前置下劃線,避免與子類中的屬性命名衝突,無法在外部直接訪問(名字重整所以訪問不到)

接下來用程式碼解釋:

2.

class People(object):
    def __init__(self):
        self.name = 'zhangsan'
        self._age = '20'
        self.__address = '鄭州'


if __name__ == '__main__':
    p = People()
    print(p.name)
    print(p._age)
    print(p.__address)

其實在這裡p._age下面有波浪線,p.__address顏色是那種似乎報錯的顏色!執行結果:

顯然__address這個地方報錯了,說明不能使用。

這裡的英文翻譯是:對受保護成員的訪問,此檢查警告是否在類外部訪問受保護成員,其定義的類或模組的繼承者。

雖然能執行,但是系統還是警告了!所以以後_x的不要隨意引用。而且

這個_age有提示,但是__address沒有提示。

3.下面是解決方案:第一種(可以強制使用,但是不建議)

4.第二種

class People(object):
    def __init__(self):
        self.name = 'zhangsan'
        self._age = '20'
        self.__address = '鄭州'

    def get__address(self):
        return self.__address


if __name__ == '__main__':
    p = People()
    print(p.name)
    print(p.get__address())

5.(純屬個人看法)