Currently, unpacking a dict in order to pass its items as keyword arguments
to a function will fail if there are keys present in the dict that are
invalid keyword arguments:
>>> def func(*, a):
... pass
...
>>> func(**{'a': 1, 'b': 2})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: func() got an unexpected keyword argument 'b'
The standard approach I have encountered in this scenario is to pass in the
keyword arguments explicitly like so
func(
a=kwargs_dict["a"],
b=kwargs_dict["b"],
c=kwargs_dict["c"],
)
But this grows more cumbersome as the number of keyword arguments grows.
There are a number of other workarounds, such as using a dict comprehension
to select only the required keys, but I think it would be more convenient
to have this be a feature of the language. I don't know what a nice syntax
for this would be, or even how feasible it is.
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/