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

当前回答

message = f"Variable : child({type(child)}) -> is not of"\
        " type Node."

这个语法适合我。注意第二个语句的缩进,它应该缩进正确。

其他回答

我觉得你问题中最重要的一个词是“suggest”。

编码标准是很有趣的东西。通常他们提供的指导在编写时有很好的基础(例如,大多数终端无法在一行上显示> 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.")

注意没有加号,我在示例的格式后面添加了额外的逗号和空格。

就我个人而言,我不喜欢反斜杠,我记得在某个地方读到过,它的使用实际上是被反对的,而支持这种更明确的形式。记住“显式优于隐式”。

我认为反斜杠不太清楚,也不太有用,因为这实际上是转义换行符。如果需要的话,不能在它后面加上行结束注释。可以通过串接字符串常量来实现:

s = ("this is my really, really, really, really, really, really, " # comments ok
     "really long string that I'd like to shorten.")

我使用谷歌搜索“python行长”,它返回PEP8链接作为第一个结果,但也链接到另一个关于这个主题的StackOverflow帖子:“为什么python PEP-8应该指定79个字符的最大行长?”

另一个好的搜索短语是“python line continuation”。

反斜杠:

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

应该工作。