Присвоение None
У меня есть функция, которая возвращает 3 числа, например:
def numbers():
return 1,2,3
Обычно я вызываю эту функцию для приема всех трех возвращаемых чисел, например:
a, b, c = numbers()
Однако у меня есть один случай, когда мне нужно только первое возвращаемое число.
Я попытался использовать:
a, None, None = numbers()
Но я получаю "SyntaxError: присваивание None".
Я знаю, конечно, что я могу использовать первый вариант, который я упомянул, а затем просто не использовать переменные "b" и "c". Однако это похоже на "отходы" двух варов и похоже на неправильное программирование.
Ответы
Ответ 1
a, _, _ = numbers()
- это питонический способ сделать это. В Python 3 вы также можете использовать:
a, *_ = numbers()
Чтобы уточнить _
- это нормальное имя переменной в Python, за исключением того, что оно обычно используется для обозначения не важных переменных.
Ответ 2
Другим способом является, конечно, a=numbers()[0]
, если вы не хотите объявлять другую переменную. Сказав это, я обычно использую сам.
Ответ 3
Как я это делаю:
a = numbers()[0]
Увидев, что возвращаемый тип является кортежем, вы можете получить к нему доступ через индекс.
Это решение не позволяет вам объявлять неиспользуемые/бессмысленные переменные, такие как "_". Большинство людей не обращают внимания на неиспользуемые переменные, однако моя настройка настраивается, чтобы предупредить меня о таких вещах, которые могут указывать на потенциально неиспользованный код и т.д.