Я борюсь со следующим упражнением:
Аргументы для определенных функций должны передаваться в function_results_sum как аргументы ключевых слов, и это должно выглядеть так: FUNCTION_NAME=ARGUMENTS.
Функция function_results_sum должна возвращать сумму всех результатов, полученных после запуска каждой переданной функции с аргументами.
Если у функции нет аргументов, аргументы не должны передаваться в function_results_sum
Если функция принимает 1 аргумент, в качестве аргумента ключевого слова int будет передано в function_results_sum (например, one_arg_function_name=2)
Если функция принимает более 1 аргумента - ожидается передача кортежа (например, two_args_function_name=(1, 2))
Как это должно работать: 1-й пример сигнатуры функций: def no_arg() def one_arg(a) def multiple_args(a, b, c, e, f)
вызов function_results_sum: function_results_sum(no_arg, one_arg,multiple_args, one_arg=23,multiple_args=(1, 2, 3, 4, 5))
2-й пример вызова function_results_sum: function_results_sum(no_arg, one_arg, multiple_args, one_arg=-1245, multiple_args=(45, 65, 76, 123456, 111.222))
! Используйте атрибут name в объекте функции!
Это то, что я придумал, однако я не знаю, почему я получаю результат в виде адресов ячеек, где хранятся выходные данные:
Вывод консоли:
<function ident at 0x00000288C0A72048> <function no_arg at
0x00000288C0A6BF28>
<function mult at 0x00000288C0A720D0>
Моя реализация:
def function_results_sum(*args, **kwargs):
return [*args]
def no_arg():
return 5
def ident(x):
return x
def mult(x, y):
return x * y
a = function_results_sum(ident, no_arg, mult, ident = 2, mult = (2, 3))
print(a)