3.3.2.4 __slots__

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.

__slots__
A questa variabile di classe si può attribuire una stringa, un tipo iterabile o una sequenza di stringhe aventi i nomi delle variabili utilizzati dalle istanze. Se __slots__ viene definito in una classe di nuovo stile, riserverà spazio per le variabili dichiarate ed eviterà la creazione automatica di __dict__ e __weakref__ per ogni istanza. Nuovo nella versione 2.2.

Note d'utilizzo di __slots__

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.