On Sat, Jul 27, 2019 at 9:28 PM Steven D'Aprano <st...@pearwood.info> wrote:

> If you're going to add support for a placeholder, there is no need to
> create a new kind of partial function?
>

Exactly! This is just an enhanced functools.partial.  An enhancement that
has already been done in several 3rd party libraries, in fact.  I like the
ellipsis, which most 3rd parties use, but it could be configurable what the
sentinel is.  Maybe a default brand new `functools.SKIP` object, but with
the docs explaining the way to use the ellipsis for those 99% of users for
whom that wouldn't break anything.

Someone posted an example implementation that used a configurable
placeholder like this.


> > Sure we could also use a `lambda` instead
> I believe that partial is faster than lambda.
>

I don't really care about faster.  I think the "partial with placeholder"
is simply nicer to read for many cases.  Sure this is a toy, but:

>>> lastname = 'Mertz'
>>> greet_david = partial(print, ..., 'David', lastname)  # In Python 3.9
>>> greet_david('Verwelkoming')
Verwelkoming David Mertz

vs.

>>> greet_david = lambda greeting: print(greeting, "David", lastname)
>>> greet_david('Cześć')
Cześć David Mertz

OK, that's a bad example because we are using it for the side effect too,
but I think it illustrates how the more flexible partial() would look
better than lambda.


-- 
Keeping medicines from the bloodstreams of the sick; food
from the bellies of the hungry; books from the hands of the
uneducated; technology from the underdeveloped; and putting
advocates of freedom in prisons.  Intellectual property is
to the 21st century what the slave trade was to the 16th.
_______________________________________________
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/XG27FN6BSHNJVTS5YRLEZBRICRZLGT43/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to