У меня есть функция, которая возвращает 2 значения. Когда я пытаюсь получить эти значения в списке в другой функции, выдается следующая ошибка:
'list' object is not callable: TypeError
Вот функция, возвращающая два значения.
def function():
return val1, val2
Вот другая функция, вызывающая function():
def function1():
values = []
values = function()
value_1 = values[0]
value_2 = values[1]
Нет необходимости определять values = [], так как вы присваиваете значение, возвращаемое function(), которое будет кортежем.





Ну вот
def function():
#return any predefined value here
return 1, 2
def function1():
values = []
a,b = function()
values.append(a)
values.append(b)
print(values)
function1()
Выход:
[1, 2]
Проверьте свой отступ.
@glhr Я отредактировал ответ, чтобы исправить намерение.
function() возвращает два значения, которые не могут быть сохранены в одной переменной «значения», поэтому вместо этого заставьте function() возвращать list из этих двух значений.
def function():
return [val1,val2]
def function1():
values=function()
value_1=values[0]
value_2=values[1]
Вам не нужен values=[], так как он все равно будет переопределен values=function()
Ваш код не должен генерировать это исключение, так как функция возвращает кортеж. Однако вот модифицированная версия вашего кода, которая возвращает список.
def function():
val1 = 10
val2 = 20
#return the values in a list
return [val1, val2]
def function1():
values = function()
value_1 = values[0]
value_2 = values[1]
print(value_1, value_2)
function1()
Выход:
10 20
return val1, val2 должен возвращать кортеж, но я не думаю, что это даст вам эту ошибку. Пожалуйста, добавьте больше информации об ошибке.