mirror of
https://github.com/python/cpython.git
synced 2025-07-23 11:15:24 +00:00
Merged revisions 72912,72920,72940 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r72912 | benjamin.peterson | 2009-05-25 08:13:44 -0500 (Mon, 25 May 2009) | 5 lines add a SETUP_WITH opcode It speeds up the with statement and correctly looks up the special methods involved. ........ r72920 | benjamin.peterson | 2009-05-25 15:12:57 -0500 (Mon, 25 May 2009) | 1 line take into account the fact that SETUP_WITH pushes a finally block ........ r72940 | benjamin.peterson | 2009-05-26 07:49:59 -0500 (Tue, 26 May 2009) | 1 line teach the peepholer about SETUP_WITH ........
This commit is contained in:
parent
d2397753ee
commit
876b2f286b
10 changed files with 105 additions and 84 deletions
|
@ -354,6 +354,8 @@ The execution of the :keyword:`with` statement with one "item" proceeds as follo
|
|||
|
||||
#. The context expression is evaluated to obtain a context manager.
|
||||
|
||||
#. The context manager's :meth:`__exit__` is loaded for later use.
|
||||
|
||||
#. The context manager's :meth:`__enter__` method is invoked.
|
||||
|
||||
#. If a target was included in the :keyword:`with` statement, the return value
|
||||
|
@ -363,9 +365,9 @@ The execution of the :keyword:`with` statement with one "item" proceeds as follo
|
|||
|
||||
The :keyword:`with` statement guarantees that if the :meth:`__enter__`
|
||||
method returns without an error, then :meth:`__exit__` will always be
|
||||
called. Thus, if an error occurs during the assignment to the target
|
||||
list, it will be treated the same as an error occurring within the suite
|
||||
would be. See step 5 below.
|
||||
called. Thus, if an error occurs during the assignment to the target list,
|
||||
it will be treated the same as an error occurring within the suite would
|
||||
be. See step 6 below.
|
||||
|
||||
#. The suite is executed.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue