#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’]??