Dovresti usare gli slot? Come gli slot influenzano la tua classe e quando e come usarli
Usare gli slot e il loro impatto sulla tua classe quando e come utilizzarli
Una riga di codice per un aumento delle prestazioni del 20%?
Le slot sono un meccanismo che ti permette di dichiarare gli attributi di una classe e di limitare la creazione di altri attributi. Stabilisci quali attributi ha la tua classe, impedendo ai programmatori di aggiungere nuovi attributi dinamicamente. Questo generalmente porta a un aumento delle prestazioni del 20%.
Le slot sono particolarmente vantaggiose nei programmi in cui hai un gran numero di istanze di classe con un insieme noto di attributi. Pensate a un videogioco o a una simulazione fisica; in queste situazioni si monitora un gran numero di entità nel tempo.
Puoi aggiungere le slot alla tua classe aggiungendo una singola riga di codice, ma è sempre una buona idea? In questo articolo vedremo il perché e il come utilizzare le slot per rendere le tue classi molto più veloci e quando usarle. L’obiettivo generale è comprendere meglio come funzionano le interne delle classi in Python. Facciamo del codice!
Le slot rendono le classi Python più veloci
Puoi migliorare l’uso della memoria e le prestazioni di una classe rendendola utilizzare le slot
. Una classe con le slot occupa meno memoria ed esegue più velocemente.
- Celebriamo il 26º compleanno di Devart con uno sconto esclusivo del 20% sugli strumenti di connettività dei dati!
- Impara la Pulizia dei Dati e il Preprocessing per la Scienza dei Dati con questo eBook Gratuito
- Il cugino AI di Michelangelo Neuralangelo è un modello di intelligenza artificiale che può raggiungere la ricostruzione di superfici 3D ad alta fedeltà [Codice incluso]
Come faccio a far usare le slot alla mia classe?
Dire a Python di far usare le slot a una classe è molto semplice. Basta aggiungere un attributo speciale chiamato __slots__
che specifica i nomi di tutti gli altri attributi:
class Persona: first_name:str last_name:str age:int __slots__ = ['first_name', 'last_name', 'age'] # <-- this adds slots def __init__(self, first_name:str, last_name:str, age:int): self.first_name = first_name self.last_name = last_name self.age = age
Nella classe sopra vediamo che Persona
ha tre attributi: first_name
, last_name
e age
. Possiamo dire a Python che vogliamo che la classe Persona
utilizzi le slot aggiungendo l’attributo __slots__
. Questo attributo deve specificare i nomi di tutti gli altri attributi.