Commit ccddc474 authored by Éric Araujo's avatar Éric Araujo

Improve doc for atexit.register and unregister (#12297)

parent b2f5c0a4
......@@ -22,7 +22,8 @@ is detected, or when :func:`os._exit` is called.
Register *func* as a function to be executed at termination. Any optional
arguments that are to be passed to *func* must be passed as arguments to
:func:`register`.
:func:`register`. It is possible to register the same function and arguments
more than once.
At normal program termination (for instance, if :func:`sys.exit` is called or
the main module's execution completes), all functions registered are called in
......@@ -35,15 +36,17 @@ is detected, or when :func:`os._exit` is called.
saved. After all exit handlers have had a chance to run the last exception to
be raised is re-raised.
This function returns *func* which makes it possible to use it as a decorator
without binding the original name to ``None``.
This function returns *func*, which makes it possible to use it as a
decorator.
.. function:: unregister(func)
Remove a function *func* from the list of functions to be run at interpreter-
Remove *func* from the list of functions to be run at interpreter
shutdown. After calling :func:`unregister`, *func* is guaranteed not to be
called when the interpreter shuts down.
called when the interpreter shuts down, even if it was registered more than
once. :func:`unregister` silently does nothing if *func* was not previously
registered.
.. seealso::
......@@ -98,6 +101,4 @@ Usage as a :term:`decorator`::
def goodbye():
print("You are now leaving the Python sector.")
This obviously only works with functions that don't take arguments.
This only works with functions that can be called without arguments.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment