Python: property

class Test(object):
    def __init__(self):
       self.__num = 100

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

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

    num = property(getNum, setNum)


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

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

print("-"*50)

t.num = 200 #相當於調用了 t.setNum(200)

print(t.num) #相當於調用了 t.getNum()

#注意點:
#t.num 到底是調用getNum()還是setNum(),要根據實際的場景來判斷,
#1. 如果是給t.num賦值 那麼一定調用setNum()
#2. 如果是獲取t.num的值,那麼就一定調用getNum()
#
#property的作用:相當於把方法進行了封裝, 開發者在對屬性設置數據的時候更方便

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章