IPython原始字符串的行延续中的不一致行为

IPython原始字符串的行延续中的不一致行为,python,ipython,Python,Ipython,CPython和ipythonshell对原始字符串的行延拓似乎有着微妙的不同解释。这些行为很容易证明 示例1:原始字符串的行延续 CPython结果: >>> r'abc\ ... def' 'abc\\\ndef' IPython外壳结果: In [1]: r'abc\ ...: def' Out[1]: 'abcdef' In [1]: r'abc\\ ...: def' Out[1]: 'abc\\def' 示例2:原始字符串的转义行继续 CP

CPython和ipythonshell对原始字符串的行延拓似乎有着微妙的不同解释。这些行为很容易证明

  • 示例1:原始字符串的行延续
CPython结果:

>>> r'abc\
... def'
'abc\\\ndef'
IPython外壳结果:

In [1]: r'abc\
   ...: def'
Out[1]: 'abcdef'
In [1]: r'abc\\
   ...: def'
Out[1]: 'abc\\def'
  • 示例2:原始字符串的转义行继续
CPython结果(在
\\
之后按
):

显然,CPython结果在两种情况下都是正确的,因为它符合以下部分:

[…]还要注意,一个反斜杠后跟一个换行符是 将这两个字符解释为字符串的一部分,而不是 行继续

下一段:

[…]反斜杠可以用前面的反斜杠转义;然而,两者 保持警惕

这是ipythonshell中的一个bug吗


相关系统信息:IPython 2.4.1,在Fedora 22上使用CPython 2.7.10和3.4.2进行了测试。

该问题已在
IPython
github上提出

它被认为是一个bug,但似乎优先级不高。它只影响原始字符串

我想不出哪种情况会让我烦恼。我在哪里需要“abc\\\ndef”

In [1]: r'abc\\
   ...: def'
Out[1]: 'abc\\def'