Назначение Никому - PullRequest
       5

Назначение Никому

15 голосов
/ 26 марта 2010

У меня есть функция, которая возвращает 3 числа, например ::1001

def numbers():
   return 1,2,3

обычно я вызываю эту функцию, чтобы получить все три возвращенных номера, например ::1004

a, b, c = numbers()

Однако у меня есть один случай, когда мне нужен только первый возвращенный номер. Я пытался использовать:

a, None, None = numbers()

Но я получаю «SyntaxError: присваивание None».

Я знаю, конечно, что я могу использовать первый вариант, который я упомянул, а затем просто не использовать переменные "b" и "c". Тем не менее, это выглядит как «пустая трата» двух переменных и похоже на неправильное программирование.

Ответы [ 3 ]

22 голосов
/ 26 марта 2010
a, _, _ = numbers()

- это питонский способ сделать это. В Python 3 вы также можете использовать:

a, *_ = numbers()

Для пояснения _ - это обычное имя переменной в Python, за исключением того, что оно обычно используется для ссылки на не важные переменные.

9 голосов
/ 26 марта 2010

Другой способ, конечно, a=numbers()[0], если вы не хотите объявлять другую переменную. Сказав это, хотя, как правило, я использую _ себя.

0 голосов
/ 22 сентября 2014

Как я это делаю:

a = numbers()[0]

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

Это решение избавляет вас от необходимости объявлять неиспользуемые / бессмысленные переменные, такие как "_". Большинство людей не обращают внимания на неиспользуемые переменные, однако мой pylint настроен так, чтобы предупреждать меня о таких вещах, которые могут указывать на потенциально неиспользуемый код и т. Д.

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