【问题标题】:Writing double backslash in python Docstring在 python Docstring 中编写双反斜杠
【发布时间】:2021-08-23 13:58:31
【问题描述】:

我正在为一个带有 clear_stop_character 函数的 python 包编写文档,其中用户可以在列表中提供额外的停止字符。在我写的文档中:

"""
stoplist (list, default empty): Accepts a list of extra stop characters,
            should escape special regex characters (e.g., stoplist=['\\*']).
"""

对于用户来说,在 stop-char 之前看到双反斜杠是至关重要的。但是,构建包的help() 结果显示:

"""
stoplist (list, default empty): Accepts a list of extra stop characters,
            should escape special regex characters (e.g., stoplist=['\*']).
"""

因此,这会误导用户。
顺便说一句,我没有根据前面的问题找到解决方案。
有什么想法吗?

【问题讨论】:

  • r 添加到三重引号r"""stoplist=['\\*']""""""stoplist=['\\\\*']"""
  • 这能回答你的问题吗? Why doesn't Python auto escape '\' in __doc__?
  • 基本上就是我说的,如果你能把它标记为骗子
  • @python_user 是的,确实如此。但是,我认为下一个答案也很好。也许这个记录可以帮助其他人。

标签: python escaping documentation docstring


【解决方案1】:

\ 在 Python 中是一个转义字符,它告诉 Python 从字面上解释它后面的字符。这意味着\\ 告诉 Python 从字面上解释第二个\,从而导致第一个反斜杠不显示的错误。

解决这个问题最简单的方法是使用四个反斜杠:\\\\。这样,Python 会看到第一个反斜杠并按字面意思解释第二个反斜杠,打印 \。然后,第三个反斜杠将告诉 Python 像 \ 一样解释第四个反斜杠。

只需将代码重写为:

"""
stoplist (list, default empty): Accepts a list of extra stop characters,
            should escape special regex characters (e.g., stoplist=['\\\\*']).
"""

【讨论】:

    猜你喜欢
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    相关资源
    最近更新 更多