[pyar] Por qué no se puede extender la clase bool?

Juanjo Conti jjconti en gmail.com
Sab Jun 16 08:42:40 ART 2012


Estoy escribiendo el capítulo 5 (Limitaciones) de mi tesis de maestría
sobre taintmode[1].

Una de las limitaciones es que la biblioteca, que extiende
automáticamente clases built-in de Python para hacerlas capaces de
trackear manchas, no puede extender bool.

Busco en Google: python cant extende bool

El primer resultado es de Stack Overflow. Excelente, pienso. Hasta que
veo que el que pregunta es mi yo del pasado :)[2]

Una respuesta que cita a Guido está buena:

'''
I thought about this last night, and realized that you shouldn't be
allowed to subclass bool at all! A subclass would only be useful when
it has instances, but the mere existance of an instance of a subclass
of bool would break the invariant that True and False are the only
instances of bool! (An instance of a subclass of C is also an instance
of C.) I think it's important not to provide a backdoor to create
additional bool instances, so I think bool should not be subclassable.
'''

Aunque es una pena, a los fines prácticos de la bibliotca resulta que
no es tan grave ya que, como dice Martelli:

'''
..."a and b" is always identical to "b if a else a" for any "a and b"
(no bool coercion involved...
'''

Saludos,

[1] http://www.juanjoconti.com.ar/taint/
[2] http://stackoverflow.com/questions/2172189/why-i-cant-extend-bool-in-python
-- 
Juanjo Conti
blog: http://www.juanjoconti.com.ar



More information about the pyar mailing list