最近,我想重复使用类属性的文档来进行一些用户友好的自我描述,但是找不到找到该类属性的文档字符串的方法。
考虑示例:
>>> class Foo(object):
... """I am a doc-string of the foo class"""
... bar: int = 42
... """I am a doc-string of the bar attribute"""
...
>>> Foo.__doc__
'I am a doc-string of the foo class'
>>> Foo.bar.__doc__
"int([x]) -> integer\nint(x, base=10) -> integer\n\nConvert a number or string to an integer, or return 0 if no arguments\nare given. If x is a number, return x.__int__(). For floating point\nnumbers, this truncates towards zero.\n\nIf x is not a number or if base is given, then x must be a string,\nbytes, or bytearray instance representing an integer literal in the\ngiven base. The literal can be preceded by '+' or '-' and be surrounded\nby whitespace. The base defaults to 10. Valid bases are 0 and 2-36.\nBase 0 means to interpret the base from the string as an integer literal.\n>>> int('0b100', base=0)\n4"
访问该类的属性的文档会给出带注释类型的文档字符串。
有没有可能,最好是没有额外的自由或进口?
答案 0 :(得分:0)
不幸的是,这似乎不可能。
“其他文档字符串”部分中的现有PEP-0258解释说,类属性的文档字符串未保留在运行时中。
许多程序员想在以下方面广泛使用文档字符串 API文档。但是,文档字符串确实会占用运行空间 程序,因此某些程序员不愿意“膨胀”他们的代码。 另外,并非所有API文档都适用于交互式 显示 doc 的环境。
Docutils的docstring提取工具将连接所有字符串 文字表达出现在定义的开头或 经过简单的分配。仅定义中的第一个字符串会 以 doc 的形式提供,并且可用于简短的用法文字 用于互动会议;后续字符串文字和所有属性 docstrings被Python字节码编译器忽略,并且可能 包含更广泛的API信息。