On Tue, 5 May 2020 23:06:39 +1000
Steven D'Aprano <st...@pearwood.info> wrote:

> ... help me solve the DRY problem for module-level functions:
> 
>     def function(spam, eggs, cheese, aardvark):
>         do stuff
>         call _private_function(spam, eggs, cheese, aardvark)
> 
> since this bites me about twice as often as the `self.spam = spam` 
> issue.
> 
> (That's not me being snarky by the way, it's a genuine question: 
> dataclasses are a mystery to me, so I don't know what they can and can't 
> do.)

Lisp macros have a "&whole" feature that captures the entire collection
of arguments to the macro:

    http://clhs.lisp.se/Body/03_dd.htm

Perhaps Python could adopt something similar?  Unlike *args and
**kwargs, &whole captures all of the parameters, not just the
non-positional, non-named ones.  The idea would be something like this:

    def function(spam, eggs, cheese, aardvark, &whole):
        do_stuff
        _private_function(&whole)

which would call _private_function as function was called.  No, Lisp
macros are not Python function calls.  No, I'm not proposing that exact
syntax.  No, I haven't thought it through.  Yes, it borders on magic,
and may impinge on implicit vs. explicit.  But evidently, Steven and I
share this particular pattern, although I never considered it enough of
a problem to "solve."

Dan

-- 
“Atoms are not things.” – Werner Heisenberg
Dan Sommers, http://www.tombstonezero.net/dan
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/Y3X2FMS33BJ3F7CVNNOKX6LBJZ6XQXOL/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to