Chance Ginger wrote: > It isn't a syntax error...I tried it before I posted. In fact > def t(x) : > def I(x) : return x > return I > > is correct.
tabs don't make it through all channels. don't use tabs for indentation when you post to newsgroups or mailing lists. and @(Y) is not valid Python syntax. no amount of indentation will change that. > Decorators are a way to add "syntactic" sugar to Python, > extending it in ways that make it useful for tools. that's a rather narrow view of what a decorator does, and doesn't help much in understanding how they work. which is unfortunate, because it's very simple: decorators are simply ordinary callables, and the result of the decoration is whatever the callable returns. in fact, any callable can be used to decorate a function: >>> @str ... def foo(bar): ... pass ... >>> foo '<function foo at 0x00986730>' >>> foo("bar") Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: 'str' object is not callable and it's all done at runtime; there is no magic involved whatsoever. >>> @open ... @str ... def bar(foo): ... pass ... Traceback (most recent call last): File "<stdin>", line 1, in ? IOError: [Errno 2] No such file or directory: '<function bar at 0x009867F0>' > I am trying to do is lessen the impact on the time used in > executing Python code when I use some forms of decorators. if you don't want Python to execute some code, all you have to do is to make sure that it isn't called. </F> -- http://mail.python.org/mailman/listinfo/python-list