On Sat, Aug 15, 2020 at 09:25:00PM -0700, Stephan Hoyer wrote:

> One question that comes up: should d[**kwargs] be valid syntax? d[*args]
> currently is not, but that's OK since d[tuple(args)] is identical.

If we're going to support keyword arguments, what reason would we have 
for not supporting `**kw` unpacking?

 
> On the other hand, we probably do need d[**kwargs] since there's no way to
> dynamically unpack keyword arguments (short of directly calling
> __getitem__).


Indeed. So there is an excellent reason to support keyword unpacking, 
and no good reason not to support it. (Assuming keyword args are 
supported at all.)


> And perhaps for symmetry this suggests d[*args] should be
> valid, too, defined as equivalent to d[tuple(args)].

Since positional arguments to `__getitem__` are automatically packed 
into a single argument, there is no need to call it with `*args`. That 
would be a waste of time: have the interpreter unpack the arguments, 
then pack them again. As you say, that makes it functionally equivalent 
to just passing `tuple(args)`.

"For symmetry" is at best a weak argument.


-- 
Steven
_______________________________________________
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/G2DT2PLYHKJ7NI6EKLYJO2WINXPQYDEE/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to