property

property函数必须是在类中用。

 

它可以设置类中某个私有成员的访问函数,包含读取,设置,删除和文档。例如:

 

#!/usr/bin/python

class Test(object):
        def __init__(self, n):
                self._x = n

        def getx(self):
                print "get x"
                return self._x

        def setx(self, n):
                print "set x"
                self._x = n

        def delx(self):
                print "del x"
                del self._x

        x = property(getx, setx, delx, "I'm the 'x' property.")

test = Test(3)
print test.x
test.x = 10
print test.x

 

 

当运行

print test.x

 时,Test()类中的getx函数会被调用。

而运行

test.x = 10

 时,Test()类中的setx函数会被调用。

当运行

del test.x

 时,Test()类中的delx函数会被调用。

 

这些很容易理解,输出文档比较特殊,如果是这样输出:

print test.x.__doc__

 这样会输出int型(x是int型的)的描述文档,你必须这样输出才能得到文档描述 "I'm the 'x' property.":

print Test.x.__doc__

 因为这个doc属性是和类相关的。

 

最后提醒一句,这个类必须是object类的子类。

 

你可能感兴趣的:(property)