这是一个开始。在使用它们的代码之外定义更长的字符串并不是一个坏习惯。这是分离数据和行为的一种方式。你的第一个选项是通过使它们相邻的隐含加入字符串字面在一起彼此:
("This is the first line of my text, "
"which will be joined to a second.")
或用线结束延续,这是一个小更脆弱,因为这个工程:
"This is the first line of my text, " \
"which will be joined to a second."
但这不:
"This is the first line of my text, " \
"which will be joined to a second."
看到区别?没有?那么当你的代码也不会。
隐式连接的缺点是它只能使用字符串文字,而不能使用从 变量中获取的字符串,所以当您重构时,事情会变得多毛。另外,您只能在整个字符串上插入格式。
或者,您也可以加入明确使用连接运算符(+
):
("This is the first line of my text, " +
"which will be joined to a second.")
明确优于隐式,为蟒蛇的禅宗说,但是这创造了三个字符串,而不是一个,并且使用两次尽可能多的记忆:有你写的两个,加上一个是两个连在一起,所以你必须知道什么时候忽略禅。好处是您可以在每行上分别应用格式化为 的任何子字符串,或者从括号外部向整个批次应用格式。
最后,你可以使用三引号字符串:
"""This is the first line of my text
which will be joined to a second."""
这往往是我最喜欢的,虽然它的行为稍有不同,因为换行,并在随后的行任何前导空格会在你最终的字符串显示。您可以通过转义反斜杠消除换行符。
"""This is the first line of my text \
which will be joined to a second."""
这具有同样的问题与上述相同的技术,在正确的代码仅由可见的空白字符不正确的代码不同。
哪一个“最好”取决于你的具体情况,但答案不仅仅是审美,而是一个微妙不同的行为。
看起来像一个不错的选择。你不喜欢它什么? – 2010-01-13 17:43:59
有点主观,不是吗? :) – 2010-01-13 17:44:23
相关:http://stackoverflow.com/questions/1940710/syntax-quirks-or-why-is-that-valid-python(在python中的字符串连接) – jldupont 2010-01-13 17:45:51