zoukankan      html  css  js  c++  java
  • python中property的使用

    记得在cocoa中也有property的概念,python中的property与cocoa里的property好像是差不多的。下面是它的两种用法。

    用法一:

    class test(object):
        def __init__(self):
            print "init is calling"
            self.a=100
    
    
        def getX(self):
            print "call getX"
            return self.a
    
        def setX(self,value):
            print "call setX"
            self.a=value
    
        x=property(getX,setX)
    
    
    def main():
        a = test()
        print a.x  #100
        a.x=150
        print a.x  #150
    
    if __name__ == '__main__':
        main()

    getX和setX这两个函数名字可以随便取的。还有一个del方法,不太常用,所以这里就不写了

    用法二:

    class test(object):
    
        def __init__(self):
            print "init is calling"
            self.a=100
    
        @property
        def x(self):
            print "call getX"
            return self.a
    
        @x.setter
        def x(self,value):
            print "call setX"
            self.a=value
    
    
    
    def main():
        t = test()
        print t.x  #100
        t.x=150
        print t.x  #150
    
    if __name__ == '__main__':
        main()

    注意到函数名都改成了x。

  • 相关阅读:
    ZOJ 3818 Pretty Poem
    HDU 4597 Play Game
    HDU 4497 GCD and LCM
    CSU 1335 高桥和低桥
    UVA 10791 Minimum Sum LCM
    CSU 1119 Collecting Coins
    CSU 1120 病毒
    UVA 12169 Disgruntled Judge
    HDU 1301 Jungle Roads
    POJ 1258 Agri-Net
  • 原文地址:https://www.cnblogs.com/streakingBird/p/4048636.html
Copyright © 2011-2022 走看看