Rozpakowywanie argumentów słów kluczowych, ale tylko te, które pasują do funkcji

Powiedzmy, że mam funkcję:

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

Mam słownik z niektórymi (lub żadnymi) argumentami powyżej, ale także z kluczami, które nie są nazwane argumentami w funkcji, np .:

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

Jeśli zadzwonię do następującego, otrzymam błąd, ponieważ „x” i „y” nie są argumentami słów kluczowych w funkcji foo.

foo(**d)  # error

Czy istnieje elegancki sposób przekazywania argumentów ze słownika do funkcji, ale tylko te wartości z kluczami, które pasują do argumentów funkcji.

Popraw mnie, jeśli moja argumentacja / terminologia parametru jest wyłączona.

questionAnswers(3)

yourAnswerToTheQuestion