python 限制訪問

上次在學習python class的時候,我們在class內(nèi)部定義了屬性,在class外部,我們可以通過 實例去訪問這些屬性。

class Student:
    ....

bart = Student()
print(bart.name)

如果不想讓外部訪問class內(nèi)部屬性,可以將屬性名前加上"__"
這樣就能夠避免class內(nèi)部的屬性直接被外部訪問,意思是將屬性設(shè)置成private(私有屬性)。但是python本身其實沒有限制訪問的機制,之所以沒辦法直接訪問,是因為python解釋器把__name屬性自動修改成了_Student__name。我們可以通過實例加_Student__name的方式訪問class內(nèi)部的__name屬性,但是,強烈不建議使用這種方式,因為python的版本不同,解釋器會將__name屬性解釋成不同的格式,這么做會導致不同版本的python運行代碼會報錯。
我們可以通過在class內(nèi)部定義方法來訪問_name,一般名稱方式為**get屬性名**

class Student(object):
    def __init__(self):
        self.__name=“paul”
        self.__score=87

    def get_name(self):
        return self.__name

同樣,如果要修改class的私有變量,可以在class內(nèi)部定義set_name方法,在方法內(nèi),可以對變量進行處理。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容