Hola buenas (y felices Reyes):
Tengo una classe con un montón de atributos y métodos. Esta clase es la clase "base" de otras. Las clases derivadas no necesitan algunos de los métodos o atributos de la clase base. El tema de los métodos lo he solucionado con mixin pues sólo son 4 métodos los afectados. El tema de los atributos no lo tengo tan claro. He visto varias soluciones (especialmente en SO), pero me he decido por una propia. He definido una propiedad sin métodos para los atributos que quiero "anular" en la clase derivada. La cosa queda más o menos así: class Base(): def __init__(self, **kwargs): self.a = {} ... class A(Base): def __init__(self, **kwargs): super().__init__(**kwrgs) ... a = property() Esto consigue (aparentemente) el efecto que busco y cuando se intenta usar el atributo "a" en una instancia de la clase "A" obtengo un error del tipo AttributeError unreadable attribute, lo que me vale. Entiendo que una instancia de "A" sigue teniendo realmente el atributo "a" aunque no lo pueda leer ni modificar. La pregunta es: ¿Esta forma de hacer las cosas me puede dar algún problema en el futuro (algo distinto de lanzar una exception AttributeError claro)? ¿Hay formas más pythónicas de hacer esto? Saludos Miguel _______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es