Skip to main content
 首页 » 编程设计

关于实例的 Python __doc__ 文档

2025年05月04日13davidwang456

我想提供有关某些动态创建的对象的文档(在我的程序中),但仍然回退到使用它们的类文档。设置 __doc__ 似乎是一种合适的方式。但是,在这方面,我在 Python 帮助中找不到很多细节,提供关于实例的文档是否有任何技术问题?例如:

class MyClass: 
    """ 
    A description of the class goes here. 
    """ 
 
a = MyClass() 
a.__doc__ = "A description of the object" 
 
print( MyClass.__doc__ ) 
print( a.__doc__ ) 

请您参考如下方法:

__doc__ 被记录为函数 的可写属性,但不是用户定义类的实例。 pydoc.help(a) ,例如,将仅考虑在 Python 版本 < 3.9 中的类型上定义的 __doc__。

其他协议(protocol)(包括 future 的用例)也可以合理地绕过实例字典中定义的特殊属性。参见 Special method lookup数据模型文档的一部分,特别是:

For custom classes, implicit invocations of special methods are only guaranteed to work correctly if defined on an object’s type, not in the object’s instance dictionary.

因此,根据属性的使用者,您打算做的事情可能并不可靠。 避免。

一个安全而简单的替代方法是为您自己的用例使用您自己选择的不同属性名称,最好不要使用 __dunder__ 语法约定,它通常表示为某些保留的特殊名称实现和/或标准库的特定用途。