У меня есть функция, которая возвращает 2 значения. Когда я пытаюсь извлечь эти значения из списка в другой функции, он выдает следующую ошибку:

Объект 'list' не вызывается: TypeError

Вот функция, возвращающая два значения.

def function(): 
    return val1, val2

Вот другая функция, вызывающая function():

def function1():

    values = []
    values = function()
    value_1 = values[0]
    value_2 = values[1]
0
vartika 2 Май 2019 в 12:28

3 ответа

Лучший ответ

function() возвращает два значения, которые не могут быть сохранены в одной переменной 'values', поэтому вместо этого function() возвращаем list этих двух значений

def function():
    return [val1,val2]
def function1():
    values=function()
    value_1=values[0]
    value_2=values[1]

Вам не нужно values=[], так как он все равно будет переопределен values=function()

1
vinzee 2 Май 2019 в 09:46

Ваш код не должен вызывать это исключение, так как возвращаемая функция - это кортеж. Однако вот измененная версия вашего кода, которая возвращает список.

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
0
Amit Yadav 2 Май 2019 в 09:48

Ну вот

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]
0
Amit Yadav 2 Май 2019 в 09:56