Почему плохое имя переменной id
в Python?
'id' - имя плохой переменной в Python
Ответ 1
id()
является фундаментальным встроенным:
Справка по встроенной функции
id
в модуле__builtin__
:id(...) id(object) -> integer Return the identity of an object. This is guaranteed to be unique among simultaneously existing objects. (Hint: it the object memory address.)
В общем, использование имен переменных, которые затмевают ключевое слово или встроенную функцию на любом языке, является плохой идеей, даже если это разрешено.
Ответ 2
id
- это встроенная функция, которая дает адрес памяти объекта. Если вы назовете одну из своих функций id
, вам нужно будет сказать __builtins__.id
, чтобы получить оригинал. Переименование id
глобально путается во всем, кроме небольшого script.
Однако повторное использование встроенных имен в качестве переменных не так уж плохо, если использование является локальным. Python имеет множество встроенных функций, которые (1) имеют общие имена и (2) вы не будете использовать многое в любом случае. Использование этих параметров в качестве локальных переменных или как элементов объекта в порядке, потому что из контекста видно, что вы делаете:
Пример:
def numbered(filename):
file = open(filename)
for i,input in enumerate(file):
print "%s:\t%s" % (i,input)
file.close()
Некоторые встроенные модули с заманчивыми именами:
-
id
-
file
-
list
-
map
-
all
,any
-
complex
-
dir
-
input
-
slice
-
buffer
Ответ 3
Я могу сказать что-то непопулярное здесь: id()
- довольно специализированная встроенная функция, которая редко используется в бизнес-логике. Поэтому я не вижу проблемы с его использованием в качестве имени переменной в плотной и хорошо написанной функции, где ясно, что идентификатор не означает встроенную функцию.
Ответ 4
В PEP 8 - Руководство по стилю для кода Python в разделе Описательные: стили именования
single_trailing_underscore_
: используется для предотвращения конфликтов с ключевым словом Python, например
Tkinter.Toplevel(master, class_='ClassName')
Итак, чтобы ответить на вопрос, примером, который применяет это руководство, является:
id_ = 42
Включение конечного подчеркивания в имя переменной делает цель четкой (для тех, кто знаком с руководством в PEP 8).
Ответ 5
Плохо назвать любую переменную после встроенной функции. Одна из причин заключается в том, что он может сбить с толку читателя, который не знает, что имя переопределено.
Ответ 6
Потому что это имя встроенной функции.
Ответ 7
'id' - встроенный метод в Python. Присвоение значения "id" будет перезаписывать метод. Лучше использовать либо идентификатор раньше, чем в "some_id", либо использовать его в другом методе капитализации.
Встроенный метод принимает один параметр и возвращает целое число для адреса памяти переданного объекта.
>>>
идентификатор (1)
9787760
>>>
x = 1
>>>
идентификатор (х)
9787760
Ответ 8
Поскольку python является динамическим языком, обычно не рекомендуется указывать переменную и функцию с тем же именем. id() - это функция в python, поэтому рекомендуется не использовать переменную с именем id. Принимая это во внимание, это относится ко всем функциям, которые вы можете использовать... переменная не должна иметь то же имя, что и функция.