[Python-es] Consulta sobre interfaces y clases abstractas

Daπid davidmenhur en gmail.com
Lun Mayo 5 12:22:21 CEST 2014


Bueno, certificar en el mismo sentido que una universidad certifica un
título: en algún momento supiste lo suficiente como para aprobar cada
examen.
O una promesa del programador de que la clase se va a comportar de forma
parecida a una lista, archivo...
On May 5, 2014 11:50 AM, "Chema Cortes" <pych3m4 en gmail.com> wrote:

> El 4 de mayo de 2014, 19:36, Daπid <davidmenhur en gmail.com> escribió:
>
>> 2014-05-04 17:40 GMT+02:00 Chema Cortes <pych3m4 en gmail.com>:
>>
>> Como es bastante tedioso andar comprobando los atributos y métodos que
>>> tiene un objeto para saber si cumple o no con determinado protocolo, la
>>> librería estándar facilita una colección de clases base abstractas
>>> (ABC-Abstract Base Classes) para poder fijar las relaciones entre clases,
>>> bien derivando de estas clases abstractas, bien registrando nuevas clases
>>> abstractas en esta jerarquía (siempre de un modo virtual).
>>
>>
>> Gracias por la explicación. Ahora entiendo la razón para usar ABC en
>> lugar de ducktyping: son un certificado de que la clase incluye una serie
>> de métodos.
>>
>
> Bueno, certificar no certifican nada. Incluso si se pudiera comprobar que
> todo es correcto en el momento de registrar una subclase, nada impediría
> que se pudieran borrar los métodos y atributos más adelante.
>
> La idea es poder indicar que una clase responde a determinados "mensajes",
> aunque no posea explícitamente los métodos para gestionarlos. Por ejemplo,
> se podría hacerlo todo desde el método __getattribute__. No hay
> introspección que pueda saber qué hace ahí.
>
> --
> Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
> http://ch3m4.org/blog
> Buscador Python Hispano: http://ch3m4.org/python-es
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140505/1c61dabe/attachment.html>


Más información sobre la lista de distribución Python-es