mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Patch #932930: suggest the use of rawstrings for backslashes.
This commit is contained in:
parent
2a6ba9097e
commit
92816de18e
2 changed files with 39 additions and 19 deletions
|
@ -361,17 +361,28 @@ The fine print:
|
||||||
\item Output to stdout is captured, but not output to stderr (exception
|
\item Output to stdout is captured, but not output to stderr (exception
|
||||||
tracebacks are captured via a different means).
|
tracebacks are captured via a different means).
|
||||||
|
|
||||||
\item If you continue a line via backslashing in an interactive session, or
|
\item If you continue a line via backslashing in an interactive session,
|
||||||
for any other reason use a backslash, you need to double the backslash in
|
or for any other reason use a backslash, you should use a raw
|
||||||
the docstring version. This is simply because you're in a string, and so
|
docstring, which will preserve your backslahses exactly as you type
|
||||||
the backslash must be escaped for it to survive intact. Like:
|
them:
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
>>> if "yes" == \\
|
>>> def f(x):
|
||||||
... "y" + \\
|
... r'''Backslashes in a raw docstring: m\n'''
|
||||||
... "es":
|
>>> print f.__doc__
|
||||||
... print 'yes'
|
Backslashes in a raw docstring: m\n
|
||||||
yes
|
\end{verbatim}
|
||||||
|
|
||||||
|
Otherwise, the backslash will be interpreted as part of the string.
|
||||||
|
E.g., the "\textbackslash" above would be interpreted as a newline
|
||||||
|
character. Alternatively, you can double each backslash in the
|
||||||
|
doctest version (and not use a raw string):
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
>>> def f(x):
|
||||||
|
... '''Backslashes in a raw docstring: m\\n'''
|
||||||
|
>>> print f.__doc__
|
||||||
|
Backslashes in a raw docstring: m\n
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
\item The starting column doesn't matter:
|
\item The starting column doesn't matter:
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
# Provided as-is; use at your own risk; no warranty; no promises; enjoy!
|
# Provided as-is; use at your own risk; no warranty; no promises; enjoy!
|
||||||
|
|
||||||
"""Module doctest -- a framework for running examples in docstrings.
|
r"""Module doctest -- a framework for running examples in docstrings.
|
||||||
|
|
||||||
NORMAL USAGE
|
NORMAL USAGE
|
||||||
|
|
||||||
|
@ -200,16 +200,25 @@ Bummers:
|
||||||
+ Output to stdout is captured, but not output to stderr (exception
|
+ Output to stdout is captured, but not output to stderr (exception
|
||||||
tracebacks are captured via a different means).
|
tracebacks are captured via a different means).
|
||||||
|
|
||||||
+ If you continue a line via backslashing in an interactive session, or for
|
+ If you continue a line via backslashing in an interactive session,
|
||||||
any other reason use a backslash, you need to double the backslash in the
|
or for any other reason use a backslash, you should use a raw
|
||||||
docstring version. This is simply because you're in a string, and so the
|
docstring, which will preserve your backslahses exactly as you type
|
||||||
backslash must be escaped for it to survive intact. Like:
|
them:
|
||||||
|
|
||||||
>>> if "yes" == \\
|
>>> def f(x):
|
||||||
... "y" + \\
|
... r'''Backslashes in a raw docstring: m\n'''
|
||||||
... "es": # in the source code you'll see the doubled backslashes
|
>>> print f.__doc__
|
||||||
... print 'yes'
|
Backslashes in a raw docstring: m\n
|
||||||
yes
|
|
||||||
|
Otherwise, the backslash will be interpreted as part of the string.
|
||||||
|
E.g., the "\n" above would be interpreted as a newline character.
|
||||||
|
Alternatively, you can double each backslash in the doctest version
|
||||||
|
(and not use a raw string):
|
||||||
|
|
||||||
|
>>> def f(x):
|
||||||
|
... '''Backslashes in a raw docstring: m\\n'''
|
||||||
|
>>> print f.__doc__
|
||||||
|
Backslashes in a raw docstring: m\n
|
||||||
|
|
||||||
The starting column doesn't matter:
|
The starting column doesn't matter:
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue