Есть ли способ применить функцию к каждому параметру другой функции / метода в Python? - PullRequest
0 голосов
/ 20 февраля 2020

Давайте предположим следующий код, в котором метод объекта принимает несколько целочисленных параметров:

def my_function(target):
    return target + 2



my_object.DoSomething(param1=my_function(1), param2=my_function(4), param3=my_function(7))

Есть ли способ сопоставить одну функцию всем параметрам такого метода? Если нет, то как бы вы подошли к этому с точки зрения эффективности, если бы было неопределенное количество параметров?

Обратите внимание, я знаю, как работают Python map () и Pandas 'apply (). Также цифры, приведенные выше, являются лишь примерами, иллюстрирующими мою точку зрения.

1 Ответ

2 голосов
/ 20 февраля 2020

Вы можете сохранить ваши параметры в словаре и распаковать их при вызове вашей функции:

params = {'param1': 1, 'param2': 4, 'param3': 7}
my_object.DoSomething(**{k: my_function(v) for k, v in params.items()})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...