Могу ли я создать функцию, которая сообщает список выходных данных на Python?

#python

#python

Вопрос:

Я пытаюсь получить список выходных данных из функций. Например, допустим, я определяю функцию с именем ‘compute’, как показано ниже

 def compute(a, b):
    add = a   b
    sub = a - b
    return add, sub
 

Что я хочу сделать дальше, так это создать новую функцию, которая принимает эту функцию ‘compute’ в качестве аргумента и возвращает список выходных данных функции add и sub в виде строк.

То есть, если я назову функцию «output_list», я хочу, чтобы функция output_list(compute) возвращала ['add', 'sub'] .

Кажется, это должно быть просто, но у меня возникли проблемы с его написанием. Как должен выглядеть код?

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

1. Возврат ['add', 'sub'] ? Что это значит?

2. Выходные compute() данные представляют собой два значения, скорее всего, числа. Тот факт, что эти значения получены из локальных переменных с именем add и sub являются внутренней деталью, не видимой вне функции. Таким образом, вы не можете определить разумную функцию, которую вы могли бы создать ['add', 'sub'] здесь.

3. нравится [str(i) for i in compute(5,6)] ? вы можете записать это в функцию…

Ответ №1:

Это невозможно. Имена локальных переменных внутри compute неизвестны за пределами compute . На самом деле, локальные переменные, скорее всего, вообще не существуют во время выполнения.

Ответ №2:

Ну, это может привести к потере цели, но если вы тот, кто определяет compute функцию, может быть, вы могли бы сделать что-то вроде этого:

 from varname import nameof
def compute(a, b):
    add = a   b
    sub = a - b
    compute.output_list = [ nameof(add), nameof(sub) ]
    return add, sub

>>> compute.output_list
['add', 'sub']
 

Ответ №3:

Ваш вопрос немного сбивает с толку, как вы хотите поместить вызываемую функцию «СОДЕРЖИТ ПАРАМЕТРЫ» в качестве параметра для другой функции без указания значений параметров?? это немного сбивает с толку… Теперь вы хотите, чтобы на выходе был список переменных в виде строки или вы хотите перечислить результаты переменных в виде списка???

Я рассмотрю наилучший сценарий, в котором вы хотите перечислить результаты переменных в виде списка значений для другой функции..

Синтаксис кода

 def compute(a, b):
    add = a   b
    sub = a - b
    return [add, sub]


def another_function(lista= compute(3, 4)):
    return lista

print(another_function())
 

ВЫВОД

 [7, -1]

[Program finished]
 

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

1. Я не был достаточно ясен со своим вопросом. Извинения. Поскольку мне нужно использовать список выходных данных «как строку» позже в моем коде, я хотел определить функцию, которая сообщает список выходных данных, чтобы я мог собирать их в виде списка строк.

2. Какой список строк ты хочешь, приятель?? Все еще сбивает с толку!! Ваша первая функция принимает 2 целых параметра? Вы хотите, чтобы выходные данные этих целых чисел были преобразованы в строку? Например, вывод в моем сообщении был [7, -1] . Вы хотите, чтобы он отображался так [‘7’, ‘-1’]??