Как передать аргументы ключевого слова с недопустимыми именами в функцию, принимающую ** kwargs

#python

#python

Вопрос:

Можете ли вы помочь мне взломать это?Контекст немного сложен для объяснения, но tl; dr Мне приходится иметь дело с производственной системой, в которой я не могу устанавливать библиотеки, и одна из библиотек ожидает недопустимые аргументы ключевого слова в качестве входных данных.

 def hack_me(**kwargs):
   if kwargs.get("hack:/me") is not None:
      print("Hacked!")
  

Цель состоит в том, чтобы функция выше, не изменяя ее, печатала Hacked! .

Комментарии:

1. args = {'hack:/me': True}, hack_me(**args) ?

Ответ №1:

В то время как обычные аргументы не могут иметь никакой формы для своего имени, расширенные аргументы, использующие тот же синтаксис, что и в сигнатуре вашей функции (т.Е. **args ), Могут.

 >>> args = {'hack:/me': True}
>>> hack_me(**args)
Hacked!