docstring适用于Python类属性?

时间:2012-01-04 00:14:37

标签: python python-3.x docstring

我有一个下面定义的类,它有一个名为'prop'的类属性,我希望打印出docstring'这是一个属性注释'。当前行为执行属性的getter并打印'getter'。

有没有办法设置类及其元类,以便我可以输入'help(MyClass.prop)'并获取文档字符串?

class _Metaclass(type):
    @property
    def prop(cls):
        """this is a property comment"""
        print("getter")
        return 1
    @prop.setter
    def prop(cls,value):
        print("setter")

class MyClass(metaclass=_Metaclass):
    """this is a class comment"""
    def func():
        """this is a function comment"""

1 个答案:

答案 0 :(得分:2)

您已在元类上设置了属性。因此,当您执行MyClass.prop时,您实际上正在MyClass类对象上执行该属性。如果这是在普通类而不是元类上,则可以从getter方法正确定义docstring。如果类可以帮助您思考这里发生的事情,那么元类就像类到实例一样。您应该从help(_Metaclass.prop)获得正确的文档字符串。