t.num = 200 #相当于调用了 t.setNum(200)
print(t.num) #相当于调用了 t.getNum()
#注意点:
#t.num 到底是调用getNum()还是setNum(),要根据实际的场景来判断,
#1. 如果是给t.num赋值 那么一定调用setNum()
#2. 如果是获取t.num的值,那么就一定调用getNum()
#
#property的作用:相当于把方法进行了封装, 开发者在对属性设置数据的时候更方便
使用property取代getter和setter方法
@property
成为属性函数,可以对属性赋值时做必要的检查,并保证代码的清晰短小,主要有2个作用
- 将方法转换为只读
- 重新实现一个属性的设置和读取方法,可做边界判定
class Test(object):
def __init__(self):
self.__num = 100
@property
def num(self):
print("----getter----")
return self.__num
@num.setter
def num(self, newNum):
print("----setter----")
self.__num = newNum
t = Test()
t.num = 200 #相当于调用了 t.setNum(200)
print(t.num) #相当于调用了 t.getNum()