Fred L. Drake, Jr. wrote: > > It's too bad this syntax is ambiguous: > > > > class Foo: > > """Docstring here, blah blah blah > > """ > > @implements(IFoo) > > > > As this achieves a desirable highlighting of the specialness, without > > forcing the decorator outside the class. Oh well. > > Agreed, but... guess we can't have everything. On the other hand, something > like: > > class Foo: > """Documentation is good.""" > > @class implements(IFoo) > > is not ambiguous. Hmm. It even says what it means. :-) This is quite reminiscent of Ruby to me, where: class Foo: implements(IFoo) basically means: class Foo: pass Foo.implements(IFoo) For a variety of reasons that doesn't work for Python, but what you propose accomplishes the same basic thing. I'm coming in a little late on all this, but I find moving the decorator inside the class statement to be a substantial improvement, even if it is also a trivial improvement ;) Anytime I've done thought experiments about using class decorators, the results is very hard to read. That classes are inherently declarative and open, while functions are imperative and closed, makes the constructs very different. -- Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4