diff options
author | Georg Brandl <georg@python.org> | 2006-11-16 16:50:59 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2006-11-16 16:50:59 (GMT) |
commit | 540821183b0a6105d5cf262db837332b14e0e259 (patch) | |
tree | e502037389efb145f06efb27e88bb98a1c80bdb1 | |
parent | adff8eb8d69718023e1443a8835bf5b99c87d5d5 (diff) | |
download | cpython-540821183b0a6105d5cf262db837332b14e0e259.zip cpython-540821183b0a6105d5cf262db837332b14e0e259.tar.gz cpython-540821183b0a6105d5cf262db837332b14e0e259.tar.bz2 |
Bug #1597824: return the registered function from atexit.register()
to facilitate usage as a decorator.
-rw-r--r-- | Doc/lib/libatexit.tex | 16 | ||||
-rw-r--r-- | Lib/atexit.py | 3 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
3 files changed, 22 insertions, 0 deletions
diff --git a/Doc/lib/libatexit.tex b/Doc/lib/libatexit.tex index 33dc7dd..9798b57 100644 --- a/Doc/lib/libatexit.tex +++ b/Doc/lib/libatexit.tex @@ -44,6 +44,10 @@ If an exception is raised during execution of the exit handlers, a traceback is printed (unless \exception{SystemExit} is raised) and the exception information is saved. After all exit handlers have had a chance to run the last exception to be raised is re-raised. + +\versionchanged[This function now returns \var{func} which makes it + possible to use it as a decorator without binding the + original name to \code{None}]{2.6} \end{funcdesc} @@ -92,3 +96,15 @@ atexit.register(goodbye, 'Donny', 'nice') # or: atexit.register(goodbye, adjective='nice', name='Donny') \end{verbatim} + +Usage as a decorator: + +\begin{verbatim} +import atexit + +@atexit.register +def goodbye(): + print "You are now leaving the Python sector." +\end{verbatim} + +This obviously only works with functions that don't take arguments. diff --git a/Lib/atexit.py b/Lib/atexit.py index c9f4cc6..93fddf7 100644 --- a/Lib/atexit.py +++ b/Lib/atexit.py @@ -40,8 +40,11 @@ def register(func, *targs, **kargs): func - function to be called at exit targs - optional arguments to pass to func kargs - optional keyword arguments to pass to func + + func is returned to facilitate usage as a decorator. """ _exithandlers.append((func, targs, kargs)) + return func if hasattr(sys, "exitfunc"): # Assume it's another registered exit function - append it to our list @@ -98,6 +98,9 @@ Core and builtins Library ------- +- Bug #1597824: return the registered function from atexit.register() + to facilitate usage as a decorator. + - Patch #1360200: Use unmangled_version RPM spec field to deal with file name mangling. |