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

num = property(getNum,setNum)     

#重点定义getset方法,在下方加一条这样的指令,__num赋值的时候就可以直接下面这样:

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方法上方要这样写,numget的方法名

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

猜你喜欢

转载自www.cnblogs.com/sy-zxr/p/12054016.html