[Python-es] Consulta sobre interfaces y clases abstractas

Chema Cortes pych3m4 en gmail.com
Lun Mayo 5 11:49:49 CEST 2014


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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140505/e671fdd6/attachment.html>


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