正如PEP8建议的,将python程序的列规则保持在80列以下,我如何才能遵守长字符串的规则,即
s = "this is my really, really, really, really, really, really, really long string that I'd like to shorten."
我该如何将其扩展到下面的行,即
s = "this is my really, really, really, really, really, really" +
"really long string that I'd like to shorten."
发布于 2009-12-09 23:31:50
因为相邻的字符串常量是自动连接的,所以您可以这样编写代码:
s = ("this is my really, really, really, really, really, really, "
"really long string that I'd like to shorten.")
注意,没有加号,我在示例的格式后面添加了额外的逗号和空格。
就我个人而言,我不喜欢反斜杠,我记得我在某处读到过,它的用法实际上是被弃用的,而支持这种更明确的形式。记住“显式比隐式更好”。
我认为反斜杠不太清楚,也不太有用,因为这实际上是在转义换行符。如果有必要的话,不能在它后面加上一个行尾注释。使用连接的字符串常量可以做到这一点:
s = ("this is my really, really, really, really, really, really, " # comments ok
"really long string that I'd like to shorten.")
我在谷歌上搜索"python line length“,它会返回PEP8链接作为第一个结果,但也会链接到另一个关于这个主题的StackOverflow帖子:"Why should Python PEP-8 specify a maximum line length of 79 characters?”。
另一个很好的搜索短语是"python line continuation“。
发布于 2009-12-09 23:24:56
我认为你问题中最重要的词是“建议”。
编码标准是很有趣的事情。通常,他们提供的指导在编写时有很好的基础(例如,大多数终端无法在一行中显示> 80个字符),但随着时间的推移,它们在功能上变得过时,但仍然严格遵守。我猜你在这里需要做的是权衡“破坏”这个特定建议的相对优点与代码的可读性和可维护性。
很抱歉,这不能直接回答您的问题。
发布于 2009-12-09 23:24:16
您丢失了一个空格,并且您可能需要一个行连续字符,即。一个\
。
s = "this is my really, really, really, really, really, really" + \
" really long string that I'd like to shorten."
或者甚至是:
s = "this is my really, really, really, really, really, really" \
" really long string that I'd like to shorten."
括号也可以用来代替行的继续,但是您可能会让人认为您打算拥有一个元组,并且刚刚忘记了一个逗号。举个例子:
s = ("this is my really, really, really, really, really, really"
" really long string that I'd like to shorten.")
对比:
s = ("this is my really, really, really, really, really, really",
" really long string that I'd like to shorten.")
使用Python的动态类型,代码可以以任何一种方式运行,但会产生不正确的结果,而不是您想要的结果。
https://stackoverflow.com/questions/1874592
复制相似问题