Вы можете легко сделать это, объявив свою функцию следующим образом:
def filter(**kwargs):
вашей функции теперь будет передаваться словарь kwargs, который содержит ключевые слова и значения, передаваемые вашей функции. Обратите внимание, что синтаксически слово kwargs
не имеет смысла; **
является причиной динамического поведения ключевых слов.
Вы также можете сделать обратное. Если вы вызываете функцию, и у вас есть словарь, который соответствует аргументам, вы можете сделать
someFunction(**theDictionary)
Существует также менее используемый вариант * foo, который заставляет вас получать массив аргументов. Это похоже на обычные массивы C vararg.