是否可以在文档字符串中包含常量的值?

Is it possible to include the value of a constant in a docstring?

我想这样做:

FOO_CONSTANT = 1

def foo():
  """asdf """ + str(FOO_CONSTANT)

print(foo.__doc__)

应该打印:

asdf 1

而是打印

None

我可以通过

获得预期的输出
FOO_CONSTANT = 1

def foo():
  """asdf """

foo.__doc__ += str(FOO_CONSTANT)
print(foo.__doc__)

但是在代码中散布文档字符串感觉很糟糕。

是否可以在文档字符串中包含常量的值?

PS:我发现 this 是远程相关的。那里尝试的方法也不会生成有效的文档字符串,请注意它是关于生成动态文档字符串的,而我的 FOO_CONSTANT 预计不会更改。我只是想避免重复自己。名称 FOO_CONSTANT 对文档字符串的 reader 没有意义,但值有意义,它出现在几个我不想重复的文档字符串中。

我发现这是一个有趣的问题并决定对其进行调查,但我自己无法想出一个不会传播文档字符串的答案,而这是您想避免的。[1 ]

但是在调查这个问题的过程中,我发现了这些已经回答的问题,我希望它们能帮助您解决问题:

  1. How to put a variable into Python docstring

[1] 就像这样,您至少可以在文档字符串中显示缺少值。

FOO_CONSTANT = 1

def foo():
  """docstring with {0} or {1} replacements."""

foo.__doc__ = foo.__doc__.format(1, 2)    
print(foo.__doc__)   

> "docstring with 1 or 2 replacements".