I actually saw a decorator like that last week, https://twitter.com/judy2k/status/854330478068977664
On 25 April 2017 at 08:56, Paul Moore <p.f.mo...@gmail.com> wrote: > On 25 April 2017 at 03:53, Steven D'Aprano <st...@pearwood.info> wrote: > > On Tue, Apr 25, 2017 at 02:08:05AM +0100, Erik wrote: > > > >> I often find myself writing __init__ methods of the form: > >> > >> def __init__(self, foo, bar, baz, spam, ham): > >> self.foo = foo > >> self.bar = bar > >> self.baz = baz > >> self.spam = spam > >> self.ham = ham > >> > >> This seems a little wordy and uses a lot of vertical space on the > >> screen. > > > > It does, and while both are annoying, in the grand scheme of things > > they're a very minor annoyance. After all, this is typically only an > > issue once per class, and not even every class, and vertical space is > > quite cheap. In general, the barrier for accepting new syntax is quite > > high, and "minor annoyance" generally doesn't reach it. > > I suspect that with a suitably creative use of inspect.signature() you > could write a decorator for this: > > @auto_attrs > def __init__(self, a, b, c): > # Remaining init code, called with self.a, self.b and self.c set > > I don't have time to experiment right now, but will try to find time > later. If nothing else, such a decorator would be a good prototype for > the proposed functionality, and may well be sufficient for the likely > use cases without needing a syntax change. > > Paul > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ > -- Daniel F. Moisset - UK Country Manager www.machinalis.com Skype: @dmoisset
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/