似乎某些转义字符在docstring中仍然很重要.例如,如果我们运行python foo.py(Python 2.7.10),它将发出错误,如ValueError: invalid \x escape.
def f():
"""
do not deal with '\x0'
"""
pass
Run Code Online (Sandbox Code Playgroud)
实际上,似乎正确的docsting应该是:
"""
do not deal with '\\\\x0'
"""
Run Code Online (Sandbox Code Playgroud)
另外它也会影响import.
对于Python 3.4.3+,错误消息是:
File "foo.py", line 4
"""
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 24-25: truncated \xXX escape
Run Code Online (Sandbox Code Playgroud)
我觉得有点奇怪,因为我认为它只会对__doc__模块本身产生影响并且没有任何副作用.
为什么设计如此?它是Python中的缺陷/错误吗?
我知道"""和原始文字的含义,但我认为python解释器应该能够特别处理docstring,至少在理论上.