1. 程式人生 > >面向物件--保護物件的屬性

面向物件--保護物件的屬性

如果有一個物件,當需要對其進行修改屬性時,有兩種方法:

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個下劃線的話表示該方法是私有的,否則為公有的)