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`. It is possible to register the same function and arguments
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
saved. After all exit handlers have had a chance to run the last exception to
- 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
.. function:: unregister(func)
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
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.