[Python-Dev] Call for defense of @decorators (original) (raw)
Gustavo Niemeyer niemeyer at conectiva.com
Thu Aug 5 20:48:45 CEST 2004
- Previous message: [Python-Dev] Call for defense of @decorators
- Next message: [Python-Dev] Call for defense of @decorators
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello Ronald,
I'm in favor of @decorators. It's easy to notice them when the are present and they are clearly special. The '[decorator] def ...' and
Why are they special? Why should they be more important than any other part of the function definition?
'decorate(decorator) def ...' are very magic, and are IMHO unfriendly to newbies (you must metion them in any introduction to python, because otherwise users would complety mis the signicance of the decorations). [...] @objc.signature("v@:@i") def saveSheetDidDismissreturnCodecontextInfo(self, sheet, returnCode, contextInfo): pass
The argument to objc.signature is fairly magic and I do try to abstract it away (such as with the introduction of objc.accessor), but that's not always possible. If decorators were not allowed to have arguments I'd have to introduce temporary functions that wouldn't help in readability.
Is special syntax in the language really required in this case, considering you're already doing something "fairly magic" anyways?
What is objc.signature() doing?
The generic example PJE is introducing in PEAK also seem a good usecase for decorators with arguments.
Any pointers?
I'd really like to "see the light" of complex decorators, as oposed to KISS, and use the current language features to implement that.
-- Gustavo Niemeyer http://niemeyer.net
- Previous message: [Python-Dev] Call for defense of @decorators
- Next message: [Python-Dev] Call for defense of @decorators
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]