property用法,使Python中的get方法和set方法使用更简单

方法一

class a:

    def __init__(self):

        self.__num = 1              #有一私有变量(以双下划线开头的是私有变量)


    def getNum(self):               #定义get方法

        return self.__num


    def setNum(self,num_temp):      #定义set方法

        if  num_temp ==1 or num_temp == 0:

            self.__num = num_temp

#重点:定义完get和set方法,在下方加一条这样的指令,给__num赋值的时候就可以直接下面这样:
num = property(getNum,setNum)
# 使用get和set方法
test = a()              #创建一个a的对象

test.num = 100         #执行这句的时候,Python会自动调用setNum方法给__num赋值,

print(test.num)         #同理,这句会自动调用get方法取__num的值

 

方法二

class a:

    def __init__(self):

        self.__num = 1              #定义一个私有变量(以双下划线开头的是私有变量)


    @property                    #这个地方原本是get方法,要注意:方法上面加一个

    def num(self):                  @property,方法名改成你想要的名字,比如num

        if self.__num ==0 or self.__num == 1:

        return self.__num

    @num.setter                 #这里set方法上方要这样写,num是get的方法名

    def num(self,num_temp):       # set的方法名和get一样

        if num_temp ==1 or num_temp == 0:

        self.__num = num_temp


# 此时就可以像方法一一样使用了:

test = a()              #创建一个a的对象

test.num = 100         #执行这句的时候,Python会自动调用setNum方法给__num赋值,

print(test.num)         #同理,这句会自动调用get方法取__num的值