I want to print entry and exit message for functions , i have bunch of such function . How can i do it in decorator.

Peter Otten __peter__ at web.de
Fri Sep 20 09:23:13 EDT 2013


bab mis wrote:

> def fun:
>     print "entry"
>     .
>     .
>     print "exit"


>>> def log(f):
...     def g(*args, **kw):
...             print "enter", f.__name__
...             try:
...                     return f(*args, **kw)
...             finally:
...                     print "exit", f.__name__
...     return g
... 
>>> @log
... def divide(a, b):
...     return a / b
... 
>>> divide(4, 2)
enter divide
exit divide
2
>>> divide(4, 0)
enter divide
exit divide
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 5, in g
  File "<stdin>", line 3, in divide
ZeroDivisionError: integer division or modulo by zero





More information about the Python-list mailing list