2011-01-13 16 views

risposta

10

non sono sicuro di un grafico, ma in fondo:

Mutevole:

list, dictionary, bytearray Nota: bytearray non è una sequenza però.

Immutabile:

tuple, str

È possibile verificare la presenza di mutevolezza con:

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

Per un dizionario (mappatura):

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

Questo controlla se si tratta di una sequenza mutabile - no se si tratta di un oggetto mutevole. I dicts sono oggetti chiaramente mutabili, ma 'isinstance ({}, collections.MutableSequence)' è falso. –

+0

Sì, per dicts, viene utilizzato 'MutableMapping'. Non ho menzionato perché ho preso l'esempio della lista. Lo aggiornerò. – user225312

+0

Questo non funziona per i set. Il mio punto è che "collezioni" non ti dirà in modo generico se un oggetto è mutevole o immutabile. –

Problemi correlati