2011-01-13 12 views

Respuesta

10

No estoy seguro de un gráfico, pero básicamente:

mutable:

list, dictionary, bytearray Nota: bytearray no es una secuencia sin embargo.

inmutable:

tuple, str

Puede comprobar si la mutabilidad con:

>>> import collections 
>>> l = range(10) 
>>> s = "Hello World" 
>>> isinstance(l, collections.MutableSequence) 
True 
>>> isinstance(s, collections.MutableSequence) 
False 

Para un diccionario (mapeo):

>>> isinstance({}, collections.MutableMapping) 
True 
+0

Esto comprueba si se trata de una secuencia mutable - no si es un objeto mutable Los dicts son objetos claramente mutables, pero 'isinstance ({}, collections.MutableSequence)' es falso. –

+0

Sí, para los dictados, se usa 'MutableMapping'. No mencioné porque tomé el ejemplo de la lista. Lo actualizaré. – user225312

+0

Eso no funciona para los conjuntos. Lo que quiero decir es que 'collections' no te dirá de forma genérica si un objeto es mutable o inmutable. –

Cuestiones relacionadas