Распаковка ключевых аргументов, но только тех, которые соответствуют функции

Допустим, у меня есть функция:

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

У меня есть словарь с некоторыми (или без) из аргументов выше, но также с ключами, которые не названы аргументами в функции, например:

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

Если я позвоню по следующему номеру, я получу сообщение об ошибке, потому что 'x' apos; и 'y'; не являются ключевыми аргументами в функции foo.

foo(**d)  # error

Существует ли элегантный способ передачи аргументов из словаря в функцию, но только те значения с ключами, которые соответствуют аргументам функции.

Пожалуйста, исправьте меня, если моя терминология аргументов / параметров отключена.

Ответы на вопрос(3)

Ваш ответ на вопрос