您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Python中打破这条漫长的路线?

如何在Python中打破这条漫长的路线?

那是一个开始。在使用长字符串的代码之外定义更长的字符串并不是一个坏习惯。这是分离数据和行为的一种方式。您的第一个选择是通过使字符串文字彼此相邻来隐式地将它们连接在一起:

("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.")

正如zen python所说的那样,显式比隐式更好,但这会创建三个字符串而不是一个字符串,并且使用两倍的内存:您编写了两个字符串,加上一个字符串将它们两个连接在一起,因此必须知道何时忽略禅宗。好处是,您可以将格式分别应用于每一行中的任何子字符串,或者应用于括号外的全部子字符串。

最后,您可以使用三引号引起来的字符串:

"""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."""

这与上面的相同技术具有相同的问题,因为正确的代码与不正确的代码仅因不可见的空格而不同。

一个“最佳”取决于您的特定情况,但答案不只是简单的美学,而是微妙的不同行为之一。

python 2022/1/1 18:40:14 有335人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶