Python 线路继续不工作?

Python 线路继续不工作?,python,python-3.x,python-2.7,exception-handling,warnings,Python,Python 3.x,Python 2.7,Exception Handling,Warnings,只有当我出于某种原因在打印报表时,它才会起作用。例如,我有 warnings.warn('blabla\ continuing writing') 其中continue位于IDE的下一行。它给了我一个错误,但它仍然是同一行的延续。为什么会这样 至少在这里,反斜杠后面有一个空格 反斜杠续集是后跟换行符的反斜杠。反斜杠后跟空格再后跟换行符就是反斜杠转义空格,也是未转义的换行符 当然,在大多数文本编辑器中,以及在Stack Overflow(我必须单击问题上的“编辑”并滚动光标以进行检查)等网站

只有当我出于某种原因在打印报表时,它才会起作用。例如,我有

warnings.warn('blabla\ 
continuing writing') 

其中continue位于IDE的下一行。它给了我一个错误,但它仍然是同一行的延续。为什么会这样

至少在这里,反斜杠后面有一个空格

反斜杠续集是后跟换行符的反斜杠。反斜杠后跟空格再后跟换行符就是反斜杠转义空格,也是未转义的换行符

当然,在大多数文本编辑器中,以及在Stack Overflow(我必须单击问题上的“编辑”并滚动光标以进行检查)等网站上,很难看到这一点,这也是许多人尽可能避免反斜杠连续体的原因之一

在字符串中使用它们是一个特别的问题,因为反斜杠转义空格放在字符串中是完全合法的,所以编译器不会给你关于它的错误,甚至大多数linter也不会对此发出警告

如果您可以将编辑器配置为识别反斜杠空白并以某种方式显示它,或者只是用一些微妙的标记来显示所有换行符,这可能会有所帮助

一个更好的解决方案是,假设您确实想要换行符,则使用三重引号:

warnings.warn('''blabla 
continuing writing''')
…可能有,这样你就可以把事情安排得很好:1

…或使用显式
\n

warnings.warn('blabla\ncontinuing writing')
…可能与字符串连接一起使用:

warnings.warn('blabla\n'
              'continuing writing')
(根据此输出的用途,也可能值得考虑不要担心换行符的确切位置,让
textwrap.fill
注意使其适合输出。)



一,。然而,值得注意的是,
textwrap
文档中的示例实际上使用了反斜杠转义换行符来馈送到
dedent
,允许您将三重引号放在一行,将文本的开头放在下一行…

可能重复@JoelBerkeley我认为这不是重复。虽然这个答案确实显示了实现类似事情的其他方法,但它并没有解释这个代码的错误,这正是问题所在。而且它们也不能完成同样的事情OP的代码应该在字符串中有一个换行符,但是这些答案说明了如何避免在字符串中得到一个换行符。这个问题写起来很混乱。如果你可以编辑问题来展示有用和不有用的例子,解释“不可用”的含义(如果是例外,粘贴整个内容),并解释所需的行为,那么最终可能会发现这是一个dup,当然你可能需要一个与我写的不同的答案。谢谢。三重报价有效。实际上,我的原始代码中没有空格(我的坏代码),但它仍然不起作用。实际上,我不想在标准输出中使用新行。我只想在IDE的下一行继续写这个语句,因为它太长了。@masque在这种情况下,您可能只需要字符串连接,而您的问题是Joel Berkeley找到的问题的副本(该问题的答案很好,涵盖了所有选项)。
warnings.warn('blabla\n'
              'continuing writing')