]> granicus.if.org Git - python/commitdiff
Improve doc for atexit.register and unregister (#12297)
authorÉric Araujo <merwok@netwok.org>
Wed, 15 Feb 2012 16:07:49 +0000 (17:07 +0100)
committerÉric Araujo <merwok@netwok.org>
Wed, 15 Feb 2012 16:07:49 +0000 (17:07 +0100)
Doc/library/atexit.rst

index 5b87b94ca153258d3f2d41251960406f6e2282da..7c76bab50d9a99d9a126e963b013f38da5e73b1a 100644 (file)
@@ -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.