1 # --------------------------------------私有-封装------------------------------------------------ 2 class person(): 3 # def setname(self,name): 4 # self.name = name 5 # def getname(self): 6 # 7 # print('name is:%s'%self.name) 8 # return self.name 9 # 10 # p1= person() 11 # p1.setname('lili') 12 # p1.name = 'llll' 13 # p1.getname() 14 15 16 @property #装饰器,设置函数功能 17 def name(self): 18 return self.__name 19 @name.setter 20 def name(self,name): 21 self.__name = name 22 23 def info(self): 24 print('name is:%s'%self.__name) 25 26 p1 = person() 27 p1.name = 'lili' 28 29 p1.info()
有装饰器后就不用再调用类的get、set(自己设置的)方法来设置私有属性的值,(类的私有属性只能在类内部才能调用,不能再外部直接调用或更改,要使用类内部的更改方法,比如自定义的set),比如上面代码中,对象就可以直接更改属性,而没有用到类里的更改方法