[Python-ideas] Decorators for variables

Michael Selik mike at selik.org
Fri Apr 1 14:33:34 EDT 2016


On Fri, Apr 1, 2016 at 2:09 PM Matthias welp <boekewurm at gmail.com> wrote:

> > Function decorators
>
> There are decorators that return a callable that not calls the function
> that was given as an argument, but also do some other things, and therefore
> change the behaviour of that function.
>
> > So instead of
> >
> >   a = Char(length=10, value='empty')
> >
> > you want
> >
> >   @Char(length=10)
> >   a = 'empty'
> >
> > ?
>
> If possible, yes. So that there is a standardized way to access changing
> variables, or to put limits on the content of the variable, similar to the
> @accepts and @produces decorators that are seen here (
> https://wiki.python.org/moin/PythonDecoratorLibrary#Type_Enforcement_.28accepts.2Freturns.29
> )
>

There is a standardized way. You can extend ``property`` or mimic its
implementation. Then instead of

class Foo:
    a = property(getter, no_cycles)

You can write

class Foo:
    a = NoCycles()


I haven't linked to a how-to for doing this is, because I think it's
unnecessary for most small projects. Every so often someone asks for a more
pleasant syntax for specifying a property, getter and setter. Guido seems
to consistently reply that he thinks our current situation is good enough.
I'd dig up a link to the email archive for you, but Google wasn't being
very kind to me.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20160401/c3a6b504/attachment.html>


More information about the Python-ideas mailing list