Chance Ginger" wrote: > If I define a decorator like: > > def t(x) : > def I(x) : return x > return I
... you get a syntax error. > and use it like: > > @t(X) > def foo(a) : > # definition of foo... > pass that's also a syntax error. > or maybe this: > > @t(X) > @(Y) > def bar(a) : > # The definition of bar... and that's not even fixable. > Will in encounter much of a penalty in executing > 'foo' or 'bar'? since foo is wrapped, calling foo will call your I function, which in turn calls the original foo. > If so, is there a way to define t such that Python knows it is > the identity function and short-circuit evaluation? if you don't want to wrap something, don't wrap it: def t(x) : def I(x) : return x if date == friday: return x # don't wrap it return I # wrap it </F> -- http://mail.python.org/mailman/listinfo/python-list