Jp Calderone <exarkun at divmod.com> writes: > David Eppstein wrote: >> In article <un011l2qz.fsf at boost-consulting.com>, >> David Abrahams <dave at boost-consulting.com> wrote: >> >>>>class Foo: >>>> >>>> decorate static: >>>> >>>> def static1(blah...): >>>> pass >>>> >>>> decorate locksFile: >>>> >>>> def static2andLocks(blah...): # both decorators appy >>>> pass >>> >>>Wow, Martin Z's idea (using your keyword) really went "thunk" for me. >>>What decorate does would be very much like what "class" does in some >>>ways. >> class: (and other something: constructs) start a block that can >> contain any code. Does this decorate keyword allow e.g. assignments >> as well as defs and other decorates? Or loops? If so what should >> it mean? Is it like that locals() gets replaced by a special >> dictionary-like-object that calls the decorator whenever any of its >> contents gets set? >> > > (I have no idea what the original poster intended, however....) > > 'decorate' expression ':' > suite > > could create a nested scope, the locals of which could be passed to > whatever "expression" evaluates to (or if it is a tuple, do the > looping thing, since people seem to like that). > > The call can return a dict with which the class dict is updated. That's almost exactly what I intended. <snip> > This covers a use case James Knight mentioned as well. As he > pointed out, '@' and other proposals only decorate functions (and > maybe classes, soon). The example he gave, I believe, was: > > @public > x = 1 > > This doesn't work, but: > > public: > x = 1 > > would. Now, swallow that scream of horror (I did, barely > ;). No screams; I love it. -- Dave Abrahams Boost Consulting http://www.boost-consulting.com
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