2010-08-16 13 views

Respuesta

20

Eso está bien, y es bastante común. Por ejemplo, los objetos asignados a un registro de la base de datos a menudo tendrán un atributo "id" asignado al valor de la columna "id" de la base de datos.

Los atributos son siempre "espacios de nombre", por lo que debe consultarlos a través de self.id o obj.id para que no haya conflicto con la función incorporada.

+0

Los ID reales del objeto normalmente no están expuestos como propiedades. Pruebe "dir (SomeCustomInstanceOfSomething)" y NO verá la propiedad "id" allí a menos que se declare específicamente como parte de su clase/objeto personalizado. "id (SomeCustomInstanceOfSomething)" no se vería afectado si haces cosas como "myObject.id = 1234" – ddotsenko

+0

Me haces sentir mejor al respecto. Aquí vamos. – Ben

4

Lo hago con frecuencia para clases que abstraen tablas de bases de datos donde a menudo hay un campo llamado id porque no hay posibilidades razonables de que un nombre entre en conflicto. Tenga en cuenta que algunos resaltadores synatax lo marcarán como una función integrada.

+2

+1 simplemente porque me gustas. – Odomontois

+1

@Odomontois. Gracias por llamar mi atención a esta publicación. Limpié mi gramática – aaronasterling

+0

, aunque no mi ortografía al parecer – aaronasterling

1

Como han dicho otros, está perfectamente bien tener un atributo de identificación, aunque muchos consideran una mala práctica para el diseño de la base de datos. Pero esa es otra pregunta.

Si te importan las convenciones en general, deberías echarle un vistazo a la pila. Esta herramienta analiza su código para detectar errores y también problemas de convención.

http://www.logilab.org/857

Cuestiones relacionadas