Доступ только к одному из возвращаемых значений из функции - PullRequest
0 голосов
/ 04 мая 2019

Как мне получить доступ только к одному из значений:

мой код:

def test():
    a = 4
    b = 5
    c = 6

    return a, b, c 

a = test().a  # only want "a" from the function

Ответы [ 4 ]

2 голосов
/ 04 мая 2019

Вы можете игнорировать другие значения, используя заполнитель _

def test():
    a = 4
    b = 5
    c = 6

    return a, b,  c

#Ignore b and c
a, _, _ = test()
print(a)
#4

Или вы можете вернуть словарь значений и получить доступ к a из словаря

def test():
    a = 4
    b = 5
    c = 6

    return locals()

print(test()['a'])
#4

Или вы можете просто использовать индексирование, чтобы найти первый элемент возвращаемого кортежа, если вы знаете, a - это первый элемент согласно Ответу Тима выше

def test():
    a = 4
    b = 5
    c = 6

    return a, b, c

print(test()[0])
#a
1 голос
/ 04 мая 2019

Функция test() возвращает кортеж , поэтому для доступа к a вам потребуется использовать следующий код:

a = test()[0]
0 голосов
/ 04 мая 2019

Есть несколько способов сделать это.

a, b, c = test() # ignore b and c

a, *_ = test() # ignore _ which captures b and c

a = test()[0]

a = test()
a[0] # which is equal to the 'a' inside the test function. 
0 голосов
/ 04 мая 2019

Вместо этого вы можете вернуть словарь:

def test():
    a = 4
    b = 5
    c = 6

    return {"a":a, "b":b, "c":c}

print(test()["a"])

4

Если вы хотите придерживаться текущего подхода, лучшее, что вы можете сделать, - это просто напечатать первый элемент из возвращенного кортежа.:

print(test()[0])

Но это, конечно, означает, что вызывающий должен знать, что a случайно совпадает с первым значением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...