A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2004-April/043934.html below:

[Python-Dev] Re: PEP 318 bake-off?

[Python-Dev] Re: PEP 318 bake-off?Phillip J. Eby pje at telecommunity.com
Thu Apr 1 19:12:35 EST 2004
At 03:47 PM 4/1/04 -0800, Guido van Rossum wrote:
> > > as [rst_directive(
> > >         arguments=(1,0,1),
> > >         options={'class': directives.class_option},
> > >         content=1
> > >     )
> > > ] def admonition(*args):
> > >     return make_admonition(nodes.admonition, *args)
> >
> > I suppose so, but a generic function attribute decorator
> > would do just as well.  IOW, it doesn't have to be
> > "rst_directive", just "attributes" would do fine.
>
>I like rst_directive(), because it's more specific -- it would catch
>mistakes earlier.  E.g. if you misspelled argumnets, attributes()
>would have no clue about it; but rst_directive() should have specific
>keywords.

Yeah, that's why I wrote the example that way.  Once you have an 
'attributes()' decorator, it's easy to create task-specific versions of it, 
e.g.:

def my_decorator(foo,bar,baz):
     return attributes(**locals())

And of course you can have defaults, and do validation of the attributes 
before the return statement.

And there's an additional reason to use task-specific decorators: if you 
later decide that function attributes aren't as useful, or you need to 
change what the attributes are named, or you decide to stick all the 
options into an object and use only one attribute, you need only change the 
task-specific decorator, not all the things that call it.


More information about the Python-Dev mailing list

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