Я хочу получить конкретное значение, возращаемое методом

Рейтинг: -2Ответов: 2Опубликовано: 19.01.2023

К примеру, вот код:

return names_vacancie, urls, prices

И вот задача, я хочу получить только значение "urls", можно ли это сделать ? Если можно, то как ?

Ответы

▲ 2Принят

Если из функции возвращаете несколько переменных как тут return names_vacancie, urls, prices, то их значения вернутся в кортеже (tuple):

def get() -> tuple:
    names_vacancie, urls, prices = 1, 2, 3
    return names_vacancie, urls, prices

print(type(get()))
# <class 'tuple'>

Достать значение можно по индексу:

urls = get()[1]
print(urls)

Или через распаковку в переменные:

names_vacancie, urls, prices = get()
print(urls)

_, urls, _ = get()
print(urls)
▲ 1

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

  1. Использовать индекс для доступа к нужному элементу в списке:
urls_only = urls[1]
  1. Использовать присваивание с помощью динамического пакета:
_, urls_only, _ = return names_vacancie, urls, prices
  1. Использовать присваивание с помощью метода pop():
urls_only = return names_vacancie, urls, prices.pop(1)
  1. Использовать присваивание с помощью спискового включения:
urls_only = [urls for _, urls, _ in return names_vacancie, urls, prices]
  1. Использовать присваивание с помощью деструктуризации:
urls_only, *_ = return names_vacancie, urls, prices

Выберите тот способ, который вам больше нравится или который более удобнее.