1

我遇到了一些看起来像这样的代码:

foo = r"""
        Hello
        How are you
        Goodbye
        """

这个约定是否只是保持字符串格式的一种简单方法,如果以正常方式制作可能会导致问题?我尝试过在线搜索,但问题的性质并不适合搜索字词。

4

2 回答 2

4

这是一个三引号 python 字符串文字。你也可以使用'''。(r前面的表示文字是原始字符串;例如,大多数转义序列被忽略;这适用于单引号和三引号字符串)。

这些字符串保留换行符,与单引号字符串不同,您必须使用\n换行符转义码:

>>> """Line one
... Line two"""
'Line one\nLine two'

该格式有很多用途。如果我需要定义一个多行常量,我经常在开始的三引号后使用反斜杠以得到一个非常易读的字符串文字:

LOREM_IPSUM = """\
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
"""

然而,最常见的用法是作为文档字符串;函数、类或模块的第一个字符串文字自动分配给该对象的__doc__属性,以便稍后由其他工具(例如pydocdoctests,特别是如果您遵循docstring 约定。按照惯例,这些通常使用三重定义引用的文字,即使只有一行文档。

于 2012-08-11T10:20:34.040 回答
0

什么是“正常方式”?当您希望字符串跨越多行时,三引号很有用。正式文档在这里

于 2012-08-11T10:20:42.300 回答