內部屬性不被外部訪問,可以把屬性的名稱前加上兩個下劃線__
,在python中,例項的變數名如果以__
開頭,就變成了乙個私有變數(private),只有內部可以訪問,外部不能訪問
class student(object):
def __init__(self, name, score):
self.__name = name
self.__score = score
def print_score(self):
print '%s: %s' % (self.__name, self.__score)
改完後,對於外部**來說,沒什麼變動,但是已經無法從外部訪問例項變數.__name
和例項變數.__score
了:
>>> bart = student('bart simpson', 98)
>>> bart.__name
traceback (most recent call last):
file "", line 1, in attributeerror: 'student' object has no attribute '__name'
這樣就確保了外部**不能隨意修改物件內部的狀態,這樣通過訪問限制的保護,**更加健壯。雙下劃線 python科技限制 python 訪問限制
class person object def run self print self.money print run def eat self,food print eat food def init self,name,age,height,weight,money self.name name...
Python訪問限制
我們可以給乙個例項繫結很多屬性,如果有些屬性不希望被外部訪問到怎麼辦?python對屬性許可權的控制是通過屬性名來實現的,如果乙個屬性由雙下劃線開頭 該屬性就無法被外部訪問。看例子 class person object def init self,name self.name name self....
python 訪問限制
class person object def init self,name,age,weight,height,money self.name name self.age age self.weight weight self.height height self.money money def ...