Hello Ron , You have many good explanations already, but I thought that this __might__ help others. Like you I was confused by the decorator syntax. till I realized it was shorthand for ...
def identity(f): return f def foo(): pass # this is the 'old way' foo = identity(foo) It just rebinds foo to the return value of the decorator function. With the new syntax it becomes. def identity(f): return f @identity def foo(self): pass This is the same as above but now the function is passed and rebound behind the scenes. Also note that decorators don't have to be a nested function, it really depends on what you are trying to achieve. hth, M.E.Farmer -- http://mail.python.org/mailman/listinfo/python-list