1. 程式人生 > >【python基礎】保護物件的屬性

【python基礎】保護物件的屬性

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

  • 物件名.屬性名 = 資料 ---->直接修改
  • 物件名.方法名() ---->間接修改

為了更好的儲存屬性安全,即不能隨意修改,一般的處理方式為

  • 將屬性定義為私有屬性
  • 新增一個可以呼叫的方法,供呼叫
class People(object):
    def __init__(self,name,age):
        self.__name = name
        self.age = age

    def getInfo(self):
        print(self.__name,self.age)


    def setInfo(self,newname):
        if len(newname) <=10:
            self.__name = newname
        else:
            print("名字太長了")

p = People("張三",18)

p.getInfo()

#直接修改例項物件的公有屬性
p.age = 20

#通過方法修改屬性,私有屬性也可以改
p.setInfo("李四")

p.getInfo()


張三 18
李四 20

總結

  • Python中沒有像C++中public和private這些關鍵字來區別公有屬性和私有屬性
  • 它是以屬性命名方式來區分,如果在屬性名前面加了2個下劃線'__',則表明該屬性是私有屬性,否則為公有屬性(方法也是一樣,方法名前面加了2個下劃線的話表示該方法是私有的,否則為公有的)。