Lo cierto es que yo también prefiero la declaración "manual" de variables, no sólo por eso de los errores (que en la mayoría de los casos son fáciles de encontrar con pychecker) sino también porque hace mucho más fácil el hacer un compilador real (es decir, a código nativo).
En cualquier caso desde la versión 2.0 (o 2.1, no recuerdo bien) se puede usar el sistema de "slots" que básicamente permite declarar los nombres de los miembros (funciones y datos) de un objeto al definirlo de forma que salte un error si se intenta utilizar un miembro de otro nombre. No sirve para limitar la creación automática de variables locales pero es una ayuda cuando se trabaja con clases muy grandes con mucha herencia y varios programadores involucrados.
Re:Más ventajas aún
(Puntos:2)( http://barrapunto.com/ )
En cualquier caso desde la versión 2.0 (o 2.1, no recuerdo bien) se puede usar el sistema de "slots" que básicamente permite declarar los nombres de los miembros (funciones y datos) de un objeto al definirlo de forma que salte un error si se intenta utilizar un miembro de otro nombre. No sirve para limitar la creación automática de variables locales pero es una ayuda cuando se trabaja con clases muy grandes con mucha herencia y varios programadores involucrados.