上次在學習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),可以對變量進行處理。