[Python-ideas] Syntax for allowing extra keys when unpacking a dict as keyword arguments

Greg Ewing greg.ewing at canterbury.ac.nz
Fri Apr 12 19:08:56 EDT 2019


Bruce Leban wrote:
> I think this is a real problem given the frequent convention that you 
> can freely add fields to json objects with the additional fields to be 
> ignored.

Unpacking json objects isn't something one does every day, so I
don't think it would be worth adding syntax just for this.

Rather than new syntax, how about a helper function such as:

def call_with_kwds_from(func, kwds):
     code = func.__code__
     names = code.co_varnames[:code.co_argcount]
     func(**{name : kwds[name] for name in names})

Usage example:

def f(a, b):
     print("a =", a, "b =", b)

d = {"a": "a_value", "b": "b_value", "c": "something extra"}

call_with_kwds_from(f, d)

-- 
Greg


More information about the Python-ideas mailing list