Per definizione, le istanze di classe sia di vecchio che di nuovo stile, hanno un dizionario per la memorizzazione degli attributi. Questo porta ad uno spreco di memoria per quegli oggetti che hanno pochissime variabili d'istanza. Tale consumo pu� essere notevole quando il numero di istanze create � enorme.
Il dizionario predefinito pu� essere sovrascritto definendo __slots__ in una classe di nuovo stile. La dichiarazione di __slots__ accetta una sequenza di variabili d'istanza e riserva per ognuna di esse spazio a sufficienza per conservare il valore di ciascuna variabile. Risparmia spazio perch� __dict__ non viene creato per ogni istanza.
Note d'utilizzo di __slots__
'__dict__' alla
sequenza di stringhe presenti nella dichiarazione __slots__.
Modificato nella versione 2.3:
'__dict__' aggiunto alla dichiarazione
__slots__ non abiliter� l'assegnamento di nuove variabili non
elencate specificatamente nella sequenza dei nomi delle variabili
d'istanza..
'__weakref__' alla
sequenza di stringhe della dichiarazione __slots__.
Modificato nella versione 2.3:
precendentemente, l'aggiunta di '__weakref__'
alla dichiarazione __slots__ non abilitava i riferimenti
deboli..
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.