Python(二十六)——@property

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

猜你喜欢

转载自blog.csdn.net/zxq6661/article/details/113705396