[Python-Dev] Decorators: vertical bar syntax (original) (raw)

James Y Knight foom at fuhm.net
Mon Aug 9 18:38:35 CEST 2004


On Aug 8, 2004, at 9:31 PM, Bill Janssen wrote:

Guido, could you expand on this principle a bit? Just stated as it is, it sounds as pointless (to my untutored mind, at least :-), as the arguments about "@ is ugly, so it shouldn't be used". After all, isn't "what the function does" an important external property of the function, and don't you have to peek inside the block to determine that? For instance, how do you know whether a function is a generator unless you look for yield statements inside it?

A function being a generator only* affects the return value, so not knowing what functions are generator functions are really just a special case of not knowing the return value of any function. That can be solved with documentation, or a decorator. e.g. @returns(types.GeneratorType)

James

*: well not really, but to the external caller it's equivalent.



More information about the Python-Dev mailing list