Preguntas sencillas
Marcos Sánchez Provencio
rapto en arrakis.es
Lun Mar 3 17:50:36 CET 2003
El lun, 03-03-2003 a las 08:44, Gonzalez Suarez, Daniel escribió:
> Buenas,
>
> Sigo con las preguntas sencillas. A raíz de la respuesta de José L. se me
> plantea una nueva pregunta sencillita, ¿qué hay que hacer para añadir un
> método a una clase en tiempo de ejecución?
Ésa ya estaba respondida en otro mensaje.
>
> Debo decir que tanta flexibilidad de Python no me gusta un pelo. Prefiero
> que en tiempo de compilación se detecten errores del tipo "Método o atributo
> no existe".
>
Eso lo hace mucho mejor Java o C++ (me imagino que que C# también).
> Otra cosa que no ha me gustado es el mecanismo cutre para definir atributos
> y métodos privados (anteponiéndole __ al nombre del atributo/método). Y
> mucho menos el truco para poder acceder a atributos/métodos privados
> (_nombreClase__nombreAtributo).
>
Al fin y al cabo es un añadido para hacer algo no natural en el
lenguaje. Lo natural en Python es que todo sea público y dinámico.
Utilizarlo de otro modo va a provocar que tengas todas las desventajas
de Python y ninguna de las ventajas.
> Espero vuestra opinión.
>
> Un saludo a todos.
>
>
> -----Mensaje original-----
> De: PpluX [mailto:johiva en inf.upv.es]
> Enviado el: jueves, 27 de febrero de 2003 22:43
> Para: La lista de python en castellano
> Asunto: Re: [Python-es] Preguntas sencillas
>
>
> > 3) ¿Existe en Python algo parecido a clases abstractas de Java? ¿Y a las
> > interfaces?
>
> Hola, yo solo voy a añadir un par de cosillas por si te puede ayudar.
> La resolución de las llamadas a métodos en python es totalmente virtual,
> es decir solo se determina en tiempo de ejecución su una determinada
> instancia tiene o no un método definido. Bueno ¿y entonces qué? pues
> esto te permite conseguir resultados parecidos a lo que harías en java
> cuando usas una clase abstracta o una interfaz, puedes suponer que una
> clase implementa un método sin problemas de que el "intérprete" no se va a
> quejar... ej:
>
> cuando tu llamas a "c.metodo()" pueden pasar:
> - inicialmente parece que python buscará la clase de la que es
> instancia c y consultará si existe el método "metodo". Si no
> existe podríamos esperar que diese un error... pero
> - NO, python no se va a preocupar "ahora" si c tiene o no el método
> "metodo", lo comprobará realmente en tiempo de ejecución, es decir
> cuando se tenga que ejecutar esa instrucción (por eso se llama
> virtual).*
>
> Esto te permite como comentaba antes que puedas suponer que ciertas
> clases definen, o redefinen los métodos que quieras. Es cuestión de ser
> ordenado. El problema es que por un lado te da flexibilidad y por el
> otro un programa que "compila" no necesariamente va a funcionar como
> esperas. =)
>
> Bueno, creo que la cosa me ha quedado muy larga... y tal vez no sea nada
> nuevo, pero ahi esta.
>
>
> Un saludo.
>
> (*) una razón para esto es que en cualquier momento a la
> instancia c le puedes añadir nuevos metodos o atributos... (y por
> eso la resolución es solamente durante la ejecución). De igual forma
> en una clase puedes decir "del c.atributo" y dinámicamente ese
> atributo desaparecerá (una razón más por la que solamente durante la
> ejecución concreta se puede determinar que métodos o atributos
> tienen una instancia)
>
> --
> *-------*
> > (@_ < From : Jose L. Hidalgo Valiño
> > //\ < Email: johiva en inf.upv.es
> > V_/_ < joseLuis.Hidalgo en hispalinux.es
> *-------* pplux en polinux.upv.es
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Esta parte del mensaje esta firmada digitalmente
URL: <http://mail.python.org/pipermail/python-es/attachments/20030303/4be4da2b/attachment.pgp>
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es
Más información sobre la lista de distribución Python-es