我一直有这个问题,我想写一个这样的文档字符串:
def foo(arg):
'''Add ``arg`` to the list of :class:`foo.bar.baz.Argument`s.'''
pass
但是,这不起作用,Sphinx 会警告
py:class reference target not found: foo.bar.baz.Argument`s
因此它将结束反引号后的
s
视为类名的一部分。例如,这种情况不会发生标点符号,如点.
。
除了在类名和复数之间添加空格(这看起来很疯狂)之外,还有什么可以做的吗?
您应该能够使用反斜杠转义的空格。
def foo(arg):
r'''Add ``arg`` to the list of :class:`foo.bar.baz.Argument`\ s.'''
pass
与@mzjn的答案类似,但在Python的最新版本中,你必须包含两个反斜杠,例如:
def foo(arg):
"""Add ``arg`` to the list of :class:`foo.bar.baz.Argument`\\ s."""
如前所述,原始字符串(“r-string”)也可以用一个反斜杠完成这项工作:
def foo(arg):
r"""Add ``arg`` to the list of :class:`foo.bar.baz.Argument`\ s."""