我有一个下面定义的类,它有一个名为'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"""
答案 0 :(得分:2)
您已在元类上设置了属性。因此,当您执行MyClass.prop
时,您实际上正在MyClass
类对象上执行该属性。如果这是在普通类而不是元类上,则可以从getter方法正确定义docstring。如果类可以帮助您思考这里发生的事情,那么元类就像类到实例一样。您应该从help(_Metaclass.prop)
获得正确的文档字符串。