property使用方法有两种,写好以后发挥的作用是相同的。
写法一
class Test(object):
"""docstring for Test"""
def __init__(self):
super(Test, self).__init__()
self.__num = 10
def getNum(self):
return self.__num
def setNum(self,newNum):
self.__num = newNum
num = property(getNum,setNum)
写法二(装饰器)
class Test(object):
"""docstring for Test"""
def __init__(self):
super(Test, self).__init__()
self.__num = 100
@property
def num(self):
return self.__num
@num.setter
def num(self,newNum):
self.__num = newNum
两种方法运行结果都一样。只不过用法不同而已。
说白了就是懒,就是为了直接使用 t.num 这种方法操作私有属性。