是否可以计算Python文档字符串?我的文档字符串中有很多重复的内容,因此我想要使用f-strings或%-style格式表达式。
当我在文档字符串位置使用f-string时:
- 导入模块会调用处理过程
- 但当我检查这样一个函数的
__doc__
时,它是空的 - sphinx不能处理f-string文档字符串
我知道如何在导入后处理文档字符串,但这对于被sphinx识别但不是对象__doc__
的doc字符串无效。
是否可以计算Python文档字符串?我的文档字符串中有很多重复的内容,因此我想要使用f-strings或%-style格式表达式。
当我在文档字符串位置使用f-string时:
__doc__
时,它是空的我知道如何在导入后处理文档字符串,但这对于被sphinx识别但不是对象__doc__
的doc字符串无效。
Python中的文档字符串必须是普通的字符串字面值。
这很容易测试 - 以下程序不显示文档字符串:
BAR = "Hello world!"
def foo():
f"""This is {BAR}"""
pass
assert foo.__doc__ is None
help(foo)
Python语法文档指出,文档字符串必须是“字符串文字”,并且f-string参考文档的末尾说明它们“不能用作文档字符串”。
因此,不幸的是您必须使用__doc__
属性。
但是,您应该能够使用装饰器来读取__doc__
属性,并将其替换为您想要的内容。
BAR = "Hello world!"
class A():
__doc__ = f"""This is {BAR}"""
pass
help(A)