为什么属性doc函数在通过help(instance.attribute)调用时不显示帮助信息

时间:2012-02-17 12:58:18

标签: python

class MyClass(object):
    def __init__(self):
        self._my_secret_thing = 1

    def _i_get(self):
        return self._my_secret_thing

    def _i_set(self, value):
        self._my_secret_thing = value

    def _i_delete(self):
        del self._my_secret_thing

    my_thing = property(_i_get, _i_set, _i_delete,'this document for my_thing')

instance_of = MyClass()

help(instance_of.my_thing) # not display the 'this document for my_thing'
help(instance_of)          # display the 'this document for my_thing'

问题>如果通过my_thing调用help(instance_of.mything)的帮助消息,为什么不会显示该消息?

参考python.property

1 个答案:

答案 0 :(得分:6)

当您访问instance_of.my_thing时,它会返回值 - 因此您实际调用help的是值1而不是属性。

如果您在类对象而不是实例上访问它,您将获得属性对象,并且docstring将附加到它;也就是说,使用help(MyClass.my_thing)help(type(instance_of).my_thing)