On 3/31/2014 1:40 PM, Ian Kelly wrote:
Second, at least in the case of decorators, while I don't dispute that they can harm readability, I think that in the majority of cases they actually help it. That's because the @ syntax placed before a function or class clearly denotes that the construct is being decorated by something. The alternative to the syntax is to place an assignment like "f = decorate(f)" *after* the definition, where it is much less prominent.
Plus, it means writing and reading the name 3 times instead of 1. This is not much of an issue for 'f', but it is for names like 'modify_x07_with_qz46pt'. Names like this occur when interfacing to external systems that dictate the names needed (as when interfacing Python to Objective-C on Macs).
-- Terry Jan Reedy -- https://mail.python.org/mailman/listinfo/python-list