Schlüsselwortargumente werden entpackt, aber nur die, die der Funktion entsprechen

Angenommen, ich habe eine Funktion:

def foo(a=None, b=None, c=None):
  return "a:%s, b:%s, c:%s" % (a, b, c)

Ich habe ein Wörterbuch mit einigen (oder keinen) der obigen Argumente, aber auch mit Schlüsseln, die in der Funktion keine benannten Argumente haben, z.

d = {'a': 1, 'x': 4, 'b': 2, 'y': 5}

Wenn ich Folgendes aufrufe, erhalte ich eine Fehlermeldung, da 'x' und 'y' keine Schlüsselwortargumente in der Funktion foo sind.

foo(**d)  # error

Gibt es eine elegante Möglichkeit, die Argumente aus einem Wörterbuch an eine Funktion zu übergeben, sondern nur die Werte mit Schlüsseln, die den Funktionsargumenten entsprechen?

Bitte korrigieren Sie mich, wenn meine Argument- / Parameterterminologie deaktiviert ist.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage