在 python 文档字符串中编写双反斜杠

maa*_*niB 5 python documentation docstring escaping

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

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

对于用户来说,看到停止字符之前的双反斜杠至关重要。然而,help()构建包的结果显示:

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

所以,这会对用户产生误导。
顺便说一句,我没有根据之前的问题找到解决方案。
有任何想法吗?

小智 4

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

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

只需将您的代码重写为:

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