python property的用法

用法一:

class Test(object):
  def __init__(self):
    # 私有化
    self.__num = 100 #名字重整_Test__num

  def setNum(self,newNum):
    print("-----setter")
    self.__num = newNum

  def getNum(self):
    print("-----getter")
    return self.__num

num = property(getNum,setNum)

t = Test();
# t.__num = 200;
# print(t.__num)

print(t.getNum())
t.setNum(50)
print(t.getNum())

print('-------------------------')

t.num = 200 #相当于调用了 t.setNum(200)

print(t.num) # 相当于调用了 t.getNum()

# 注意点
# t.num 到底是调用了getNum()还是SetNum(),要根据实际的场景来判断,
# 1.如果是给t.num赋值,那么一定调用setNum()
# 2.如果是获取t.num的值,那么就是调用getNum()

# property的作用:相当于把方法进行了封装,开发者在对属性设置数据的时候更方便

用法二:

class Test(object):
  def __init__(self):
    # 私有化
    self.__num = 100 #名字重整_Test__num

  @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('--------------------------')

print(t.num) # 相当于调用了 t.getNum()

上一篇:(队列的应用5.3.3)POJ 3125 Printer Queue(优先队列的使用)


下一篇:Python设计模式 - UML - 用例图(Use Case Diagram)