Desembalar argumentos de palavras-chave, mas apenas os que correspondem à função

Digamos que eu tenha uma função:

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

Eu tenho um dicionário com alguns (ou nenhum) dos argumentos acima, mas também com chaves que não são chamadas de argumentos na função, por exemplo:

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

Se eu chamar o seguinte, receberei um erro, porque 'x' e 'y' não são argumentos de palavra-chave na função foo.

foo(**d)  # error

Existe uma maneira elegante de passar os argumentos de um dicionário para uma função, mas apenas os valores com chaves que correspondem aos argumentos da função.

Por favor, corrija-me se a terminologia do meu argumento / parâmetro estiver desativada.

questionAnswers(3)

yourAnswerToTheQuestion