Неиспользуемое имя переменной в 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.
Ответы
Ответ 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
__
означает, опасность. Не трогайте, или вы серьезно нарушите состояние и стабильность этой вещи. Пожалуйста, держитесь подальше или все, что у вас есть, если что-то пойдет не так.