Python字符串表示法

时间:2012-08-11 10:18:01

标签: python

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

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

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

2 个答案:

答案 0 :(得分:4)

这是一个triple-quoted python string literal。您也可以使用'''。 (前面的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.
"""

然而,最常见的用法是docstring;函数,类或模块的第一个字符串文字自动分配给该对象的__doc__属性,以便以后通过其他工具(例如pydocdoctests轻松检索,尤其是如果您关注docstring conventions。按惯例,这些通常是使用tripple引用的文字定义的,即使只有一行文档。

答案 1 :(得分:0)

什么是“正常方式”?当您希望字符串跨越多行时,三引号非常有用。正式文件是here