Skip to Content
Python: Essential Reference, Third Edition
book

Python: Essential Reference, Third Edition

by David Beazley
February 2006
Intermediate to advanced content levelIntermediate to advanced
648 pages
14h 53m
English
Sams
Content preview from Python: Essential Reference, Third Edition

Function Decorators

Function decorators are used to modify what happens when a function is defined. That is, they affect the behavior of the def statement itself. Decorators are denoted using the special @ symbol, as follows:

@foo
def bar(x):
     return x*2

The preceding code is shorthand for the following:

def bar(x):
    return x*2
bar = foo(bar)

In the example, a function bar() is defined. However, immediately after its definition, the function object itself is passed to the function foo(), which returns an object that replaces the original bar. An example will clarify:

def foo(f):
     def wrapper(*x,**y):
          print "Calling", f.__name__
          return f(*x,**y)
     return wrapper

In this case, foo() places a wrapper function around the original function object. If ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Python: Essential Reference

Python: Essential Reference

David M. Beazley

Publisher Resources

ISBN: 0672328623Purchase book