On Mar 26, 2004, at 11:08 AM, Jack Diederich wrote: > On Fri, Mar 26, 2004 at 07:10:34AM -0800, Guido van Rossum wrote: >> We came to an interesting conclusion (which Robert had anticipated): >> there are two quite different groups of use cases. >> >> The other group of use cases merely attaches extra bits of metadata to >> the method, without changing its usage. That is what most C# and Java >> decorators are used for. > I've posted some examples in the 318 threads of both kinds, > the function decorators I use tend to change behavior and > the class decorators I use tend to be meta-markup. > > For class decorators I currently use a work around w/ metaclasses, > I don't decorate functions much so I just do it the old fashioned way. > >> So, anyway, here's a new suggestion (inspired by Robert's proposal): >> (2) Invent some other notation for setting function attributes as part >> of the function *body*, before the doc string even. >> >> For (2) I am thinking aloud here: >> >> def foobar(self, arg): >> @author: "Guido van Rossum" >> @deprecated >> pass > > I'm agnostic on '@' but this looks like pydoc markup to me, what about > > def foobar(self, arg): > @author = "Guido van Rossum" > @deprecated = True > > People will also want to access these, so also consider how this will > read: > > def foobar(self, arg): > @author = "Guido" > @email = @author.lower() + '@python.org' # contrived example > > I'd be a little worried that new users from other languages would start > using '@' as a synonym for 'this' in strange ways. Nothing that can't > be remedied with a clue bat. Would we call that Rython or Puby? FWIW, I agree with PJE. I want one syntax to rule them all, I see no need to use two, even though there are different use cases. Clearly we use foo[bar] syntax for different things depending on what foo is, and I haven't seen any complaints about that. -bob
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