3

如何访问属性的文档字符串而不是它所持有的值?

为什么下面代码中的 2 个帮助函数会返回不同的文档字符串abc.x

class C(object):
    def __init__(self):
        self._x = None

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

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

abc = C()
help(abc) # prints the docstring specified for property 'x'
help(abc.x) # prints the docstring for "None", the value of the property
4

2 回答 2

7

发生这种情况是因为abc.x已解决None。然后None正在传递给help()。尝试这个:

help(C.x)
于 2013-04-16T15:28:00.990 回答
3

当您评估时abc.x,您调用访问方法。要获取属性本身,您可以将其称为C.x. 然后,您可以使用help(C.x). 如果您只有一个类实例,则可以通过其类访问该属性:

>>> help(abc.__class__.x)
Help on property:

    I'm the 'x' property.
于 2013-04-16T15:35:58.303 回答