mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
gh-104770: Let generator.close() return value (#104771)
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
This commit is contained in:
parent
50fce89d12
commit
d56c933992
4 changed files with 105 additions and 9 deletions
|
@ -595,12 +595,19 @@ is already executing raises a :exc:`ValueError` exception.
|
|||
.. method:: generator.close()
|
||||
|
||||
Raises a :exc:`GeneratorExit` at the point where the generator function was
|
||||
paused. If the generator function then exits gracefully, is already closed,
|
||||
or raises :exc:`GeneratorExit` (by not catching the exception), close
|
||||
returns to its caller. If the generator yields a value, a
|
||||
:exc:`RuntimeError` is raised. If the generator raises any other exception,
|
||||
it is propagated to the caller. :meth:`close` does nothing if the generator
|
||||
has already exited due to an exception or normal exit.
|
||||
paused. If the generator function catches the exception and returns a
|
||||
value, this value is returned from :meth:`close`. If the generator function
|
||||
is already closed, or raises :exc:`GeneratorExit` (by not catching the
|
||||
exception), :meth:`close` returns :const:`None`. If the generator yields a
|
||||
value, a :exc:`RuntimeError` is raised. If the generator raises any other
|
||||
exception, it is propagated to the caller. If the generator has already
|
||||
exited due to an exception or normal exit, :meth:`close` returns
|
||||
:const:`None` and has no other effect.
|
||||
|
||||
.. versionchanged:: 3.13
|
||||
|
||||
If a generator returns a value upon being closed, the value is returned
|
||||
by :meth:`close`.
|
||||
|
||||
.. index:: single: yield; examples
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue