面向物件--保護物件的屬性
阿新 • • 發佈:2018-11-07
如果有一個物件,當需要對其進行修改屬性時,有兩種方法:
1、物件名.屬性名 = 資料 -------- 直接修改
2、物件名.方法名() ------- 間接修改
為了更好的儲存屬性安全,我們一般的處理方式為:
將屬性定義為私有屬性
新增一個可呼叫的方法,供呼叫修改屬性;
class People(object): def __init__(self, name): self.__name = name def getName(self): return self.__name def setName(self, newName): if len(newName) >= 5: self.__name = newName else: print("error:名字長度需要大於或者等於5") xiaoming = People("dongGe") print(xiaoming.__name)
class People(object): def __init__(self, name): self.__name = name def getName(self): return self.__name def setName(self, newName): if len(newName) >= 5: self.__name = newName else: print("error:名字長度需要大於或者等於5") xiaoming = People("dongGe") xiaoming.setName("wanger") print(xiaoming.getName()) xiaoming.setName("lisi") print(xiaoming.getName())
總結:
python 中以屬性命名來區分公有屬性和私有屬性;
如果在屬性名前面加兩個下劃線'__',表明屬性為私有屬性,否則為公有屬性(方法也是一樣,方法名前面加了2個下劃線的話表示該方法是私有的,否則為公有的)