可以计算 Python 文档字符串(f-string 或 %-expression)吗?
Can a Python docstring be calculated (f-string or %-expression)?
是否可以计算 Python 文档字符串?我的文档字符串中有很多重复的东西,所以我想使用 f-strings 或 %-style 格式表达式。
当我在文档字符串的位置使用 f 字符串时
- 导入模块调用处理
- 但是当我检查
__doc__
这样一个函数时它是空的
- sphinx barfs 当 docstring 是一个 f-string
我知道如何在导入后处理文档字符串,但这不适用于对象 'doc' 字符串,它被 sphinx 识别但不是真正的 __doc__
对象。
Python 中的文档字符串必须是常规字符串文字。
这很容易测试 - 以下程序不显示文档字符串:
BAR = "Hello world!"
def foo():
f"""This is {BAR}"""
pass
assert foo.__doc__ is None
help(foo)
Python 语法文档说 the docstring must be a "string literal", and the tail end of the f-string reference 说它们“不能用作文档字符串”。
很遗憾,您必须使用 __doc__
属性。
但是,您应该能够使用装饰器来读取 __doc__
属性并将其替换为您想要的任何内容。
是否可以计算 Python 文档字符串?我的文档字符串中有很多重复的东西,所以我想使用 f-strings 或 %-style 格式表达式。
当我在文档字符串的位置使用 f 字符串时
- 导入模块调用处理
- 但是当我检查
__doc__
这样一个函数时它是空的 - sphinx barfs 当 docstring 是一个 f-string
我知道如何在导入后处理文档字符串,但这不适用于对象 'doc' 字符串,它被 sphinx 识别但不是真正的 __doc__
对象。
Python 中的文档字符串必须是常规字符串文字。
这很容易测试 - 以下程序不显示文档字符串:
BAR = "Hello world!"
def foo():
f"""This is {BAR}"""
pass
assert foo.__doc__ is None
help(foo)
Python 语法文档说 the docstring must be a "string literal", and the tail end of the f-string reference 说它们“不能用作文档字符串”。
很遗憾,您必须使用 __doc__
属性。
但是,您应该能够使用装饰器来读取 __doc__
属性并将其替换为您想要的任何内容。