Python(二十六)——@property
一、描述
@property将私有方法变成私有属性,大多数情况下为了实现类似于get方法和set方法
一、普通方法的实现类似于get方法和set方法
class Employee():
def __init__(self,name,salay):
self.name = name
self.__salay = salay
def get_salay(self):
print('get salay')
return self.__salay
def set_salay(self,new_salay):
self.__salay = new_salay
return self.__salay
if __name__=='__main__':
a = Employee('Lili',30000)
print(a.get_salay())
print(a.set_salay(2000))
#get salay
#30000
#2000
二、用@property实现
class Employee():
def __init__(self,name,salay):
self.name = name
self.__salay = salay
@property
def get_salay(self):
print('get salay')
return self.__salay
@get_salay.setter
def set_salay(self,new_salay):
self.__salay = new_salay
return self.__salay
if __name__=='__main__':
a = Employee('Lili',30000)
print('salay赋值前',a.get_salay)
a.set_salay=400
print('salay赋值后:',a.set_salay)
#get salay
#salay赋值前 30000
#get salay
#salay赋值后: 400