Объект 'list' не вызывается: TypeError - PullRequest
0 голосов
/ 02 мая 2019

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

объект 'list' не может быть вызван: TypeError

Здесьфункция, возвращающая два значения.

def function(): 
    return val1, val2

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

def function1():

    values = []
    values = function()
    value_1 = values[0]
    value_2 = values[1]

Ответы [ 3 ]

1 голос
/ 02 мая 2019

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

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

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

0 голосов
/ 02 мая 2019

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

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 голосов
/ 02 мая 2019

Вот, пожалуйста,

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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...