data - python global variable
''id'' es un mal nombre de variable en Python (8)
''id'' es un método incorporado en Python. Asignar un valor a ''id'' sobrescribirá el método. Lo mejor es usar un identificador antes como en "some_id" o usarlo en un método de capitalización diferente.
El método integrado toma un solo parámetro y devuelve un número entero para la dirección de memoria del objeto que pasó.
>>>
id (1)
9787760
>>>
x = 1
>>>
id (x)
9787760
¿Por qué es malo nombrar una id
variable en Python?
Como Python es un lenguaje dinámico, no es una buena idea dar una variable y una función del mismo nombre. id () es una función en python, por lo que se recomienda no usar una variable llamada id. Teniendo esto en cuenta, eso se aplica a todas las funciones que podría usar ... una variable no debería tener el mismo nombre que una función.
En PEP 8 - Guía de estilo para Python Code , la siguiente guía aparece en la sección Descriptivo: Estilos de nombre :
single_trailing_underscore_
: utilizado por convención para evitar conflictos con la palabra clave Python, por ejemplo
Tkinter.Toplevel(master, class_=''ClassName'')
Entonces, para responder la pregunta, un ejemplo que aplica esta guía es:
id_ = 42
Incluir el guión bajo final en el nombre de la variable hace que el intento sea claro (para aquellos familiarizados con la guía en PEP 8).
Es malo nombrar cualquier variable después de una función incorporada. Una de las razones es porque puede ser confuso para un lector que no sabe que el nombre está anulado.
Podría decir algo impopular aquí: id()
es una función incorporada bastante especializada que rara vez se usa en lógica comercial. Por lo tanto, no veo un problema al usarlo como un nombre de variable en una función ajustada y bien escrita, donde está claro que id no significa la función incorporada.
Porque es el nombre de una función incorporada.
id()
es una función fundamental incorporada:
Ayuda en la función incorporada de
id
en el módulo__builtin__
:
id(...) id(object) -> integer Return the identity of an object. This is guaranteed to be unique among simultaneously existing objects. (Hint: it''s the object''s memory address.)
En general, usar nombres de variables que eclipsen una palabra clave o función incorporada en cualquier idioma es una mala idea, incluso si está permitido.
id
es una función incorporada que proporciona la dirección de memoria de un objeto. Si nombra una de sus funciones id
, tendrá que decir __builtins__.id
para obtener la original. Renombrar id
globalmente es confuso en todo menos en un pequeño script.
Sin embargo, reutilizar nombres incorporados como variables no es tan malo siempre que el uso sea local. Python tiene muchas funciones integradas que (1) tienen nombres comunes y (2) no usará mucho de todos modos. Usar estas como variables locales o como miembros de un objeto está bien porque es obvio desde el contexto lo que estás haciendo:
Ejemplo:
def numbered(filename):
file = open(filename)
for i,input in enumerate(file):
print "%s:/t%s" % (i,input)
file.close()
Algunos complementos con nombres tentadores:
-
id
-
file
-
list
-
map
-
all
,any
-
complex
-
dir
-
input
-
slice
-
buffer