[pyar] Chequear si un objeto es mutable..
Claudio Freire
klaussfreire en gmail.com
Lun Abr 18 16:55:31 ART 2011
2011/4/18 david weil <tenuki en gmail.com>:
> Estoy haciendo unas clases y sus instancias, según la clase, serán
> mutables o no.
>
> Eso me llevó a ver si hay alguna forma de saber si un objeto/instancia
> es mutable.
>
> Por todos lados, leí, que uno lo que tiene que hacer es fijarse el
> tipo/clase del objeto y según cual sea, determinar si es mutable o no.
> "An object’s mutability is determined by its type; for instance,
> numbers, strings and tuples are immutable, while dictionaries and
> lists are mutable."
> ( http://docs.python.org/py3k/reference/datamodel.html#objects-values-and-types
> )
>
Usualmente, hash(x) tira un TypeError si el objeto no es hashable. No
es lo mismo que mutable, pero es una aproximación.
Diccionarios, listas, y otros tipos basicos no son hashables,
justamente porque son mutables.
El tema es, las clases son todas hasheables por defecto. Había una
forma para hacerlas no hasheables:
class A(object):
__hash__ = None
Pero sólo funciona con clases NUEVAS (no clásicas), y que hayan sido
explícitamente marcadas de esta forma.
Peor es nada, diría ;-)
More information about the pyar
mailing list