Ver Mensaje Individual
  #10 (permalink)  
Antiguo 07/07/2009, 13:12
argentinator
 
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 90
Antigüedad: 18 años, 11 meses
Puntos: 2
Respuesta: Sobre el uso de self

No me molesta escribir self, lo que me molesta es leerlo, porque cuando estoy buscando alguna parte de mi propio código, al encontrar la palabra self por todos lados me confunde. sefl.esto, self.aquello, etc.
Me aparece en datos que paso como parámetro, en asignaciones, etc., y no me deja ver las ''verdaderas'' variables o métodos que estoy invocando.
O sea, me cuesta encontrar mis propias variables si hay tanto self por todos lados.

Eso no quiere decir que no use self. Lo vengo usando como corresponde y me da buenos resultados, lo reconozco. Me evita dolores de cabeza terribles con el manejo de objetos en TKinter (un par de veces olvidé poner self, y pude vislumbrar una puntilla de los problemas que vendrían más adelante si nunca lo usara.)

Pero la palabra self me aparece en una cantidad excesiva.
Si sólo hubiera que usar self un par de veces, estaría orgulloso de mi código bien programado orientado a objetos, pero son tantas las veces que aparece, que satura mi campo visual y me empiezo a confundir.

Cosas como _.__variable no me molestan, porque el punto que separa el primer - del restante __variable es para mí bastante visible.

Pero ahora con eso de que el signo _ tiene significados especiales en Python (cosa que no sabía, así que al menos aprendí algo nuevo de Python con toda esta discusión) ya me hace considerar que no es bueno usarlo.

Por otra parte, si eso de self es tan importante, ¿no sería mejor que fuera una palabra clave como el this de C++? En ese caso el editor de Python lo mostraría con otro color (a mí las palabras claves me aparecen en naranja) y sería más visible, a la vez que sería menos engorroso, porque se distinguirían bien los atributos variables, algo así:

self.variable

Entiendo que las reglas están por alguna razón, pero también pienso que las reglas pueden cambiarse si a los programadores les hace falta.

Y por útlimo, no sé qué es eso del "modo dinámico".
Si lo supiera a lo mejor pensaría más parecido a ustedes...

Con las demás características de Python estoy muy contento.
Es una muy buena herramienta para el programador.
Es cierto lo que dicen por ahí, que hay poca distancia entre la idea y el programa terminado.
Aprendí TKinter en apenas 3 días, y ya lo manejo más que bien.

Sólo me molesta el self...