En mi opinión, dependiendo del caso, el hecho de definir todo en el __init__ , no es necesario, ya que puedes definirlas como atributos de la clase. (hablando de variables claro esta...)
Hay que tener en cuenta que esos atributos se quedan asignados en el momento de la creacion de la clase y no en el momento de creacion de la instancia. Lo que hace que si tienes 10 variables, no tengas que hacer 10 asignaciones por casa instancia. Las variables que tu asignes a self desde __init__ deben ser fruto de alguna ejecucion que solo podria ser obtenida en el momenot de ejecucion. Y como ya te lo han comentado, si no lo necesitas usar desde otros metodos a posteriori de la creacion de la instancia... no la asignes a la clase. Ya que en caso de que fueran variables de poco uso y la asignes a la clase, permaneceran en memoria hasta que la instancia fuera eliminada por el GC, que en otro caso, en teoria deberian ser eliminadas por el GC, una vez dejaras de necesitarlas, es decir que acabe la ejecucion de tu metodo. No se si me he explicado con esto ultimo, pero al menos lo he intentado :) Andrei. 2011/8/6 Ricardo Cárdenes <ricardo.carde...@gmail.com>: > 2011/8/5 kldgarrido <kldgarr...@gmail.com>: >> Hola Amigos. >> >> Me gustaría consultarles algo: >> >> A la hora implementar una clase consideran estético para python declarar >> todas las variables que se van utilizar en "def __init__():" o declarar >> según los métodos que la utilicen. >> >> por ejemplo: >> Para crear una variable self.b que se va a imprimir por un método >> llamado self.imprimir() > > El caso sería preguntarse: ¿es necesario almacenar la variable para > usos futuros? Si es así, seguramente va a ser usada en algún otro > método (para actualizar su valor, por ejemplo) y en ese caso es > conveniente que esté creada desde el principio (en __init__), porque > no se puede predecir el orden en que van a ser llamados los métodos > que trabajan con la variable. > > En caso de que la variable sea de "usar y tirar", sólo dentro del > método que la usa, ¿para qué asignarla a self? > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- http://twitter.com/andsux http://www.niwi.be **** http://www.freebsd.org/ http://www.postgresql.org/ http://www.python.org/ http://www.djangoproject.com/ "Linux is for people who hate Windows, BSD is for people who love UNIX" "Social Engineer -> Because there is no patch for human stupidity" _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/