Подтвердить что ты не робот

Неиспользуемое имя переменной в python

Возможный дубликат:
Как я могу обойти объявление неиспользуемой переменной в цикле for?

В Python лучшая практика для обозначения переменной, которая не будет использоваться? Это нечетный вопрос, но для моего конкретного случая у меня есть кортеж (ключ, значение), где меня интересует только значение. Основная демонстрация моего варианта использования:

some_stuff = [("key", "value"), ("key2", "value")]
for _, value in some_stuff:
    pass  # TODO: do something really important with value

Я заметил в Eclipse, что именование переменной _ или с префиксом _ (например, _k) не отображает предупреждение неиспользуемой переменной и удаление префикса _ вызывает предупреждение, но это может быть просто странность/ "функция" в Eclipse, а не в лучшей практике Python.

4b9b3361

Ответ 1

Не уверен, что это вещь Eclipse или нет, но я обычно использую '_' для обозначения значений, которые мне не нужны (т.е. возвращают значения в кортежах или значения индекса в for -loops).

Конечно, вы всегда можете прибегать к старым резервным системам, например, к именам переменных dummy или ignore.

Я не уверен, что PEP 8 упоминает что-нибудь об этом, возможно, стоит заглянуть внутрь.

Ответ 2

Это соглашение о кодировании на Python, да. Лучше всего использовать _, где вам не нужно задавать значение, например, когда распаковывает значения из кортежа. Иногда, однако, необходимость в этом - знак того, что вы можете делать что-то другое не-питоническим способом.

_, поскольку префикс используется для обозначения методов и переменных "private", как сказал Фил Купер. Используйте это, чтобы указать, что эти методы не являются частью какого-либо публичного контракта, на который могут или должны полагаться другие модули.

Некоторые ссылки:

Ответ 3

Начнем с...

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
...
Readability counts.
Special cases aren't special enough to break the rules.

Я рекомендую выбрать подход, который не подлежит сомнению. Обычно это означает нечто самоочевидное, простое и понятное. Если вы настаиваете на том, чтобы выразить не используемое, как насчет имени unused или dummy?

Должен ли _ быть более невидимым, скрытым или даже кандидатом для упускания, если это возможно?

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

Ответ 4

Вы в значительной степени получили его с помощью _1

  • preend one _ означает, что он есть, и вы можете посмотреть, но я действительно хотел, чтобы какой-то другой метод или свойство были тем, что вы используете, поэтому продолжайте читать документы.
  • preend two __ означает, опасность. Не трогайте, или вы серьезно нарушите состояние и стабильность этой вещи. Пожалуйста, держитесь подальше или все, что у вас есть, если что-то пойдет не так.