O que é __slots__ e para que serve em Python

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é __slots__ e para que serve? Guia completo de otimização de classes em Python

Na linguagem Python, as classes desempenham um papel fundamental na programação orientada a objetos. No entanto, ao trabalhar intensivamente com objetos, você pode notar que esses programas consomem uma quantidade significativa de memória. Isso se torna especialmente crítico ao criar milhões de instâncias da mesma classe.

Nesses casos, um mecanismo especial vem em socorro: o __slots__. Não se trata apenas de um elemento sintático, mas de uma ferramenta poderosa de otimização que permite controlar a memória e acelerar a execução dos programas.

Vamos entender o que é __slots__, como usá-lo e em quais situações ele é realmente necessário.


O que é __slots__ em Python?

__slots__ é um atributo especial de classe que restringe a lista de atributos permitidos para as instâncias dessa classe.

Por padrão, ao criar objetos em Python, seus atributos são armazenados no dicionário __dict__. Isso é conveniente, mas ineficiente em termos de memória, especialmente quando muitos objetos do mesmo tipo são criados.

Quando você define __slots__, o Python, em vez de usar o dicionário, cria estruturas alocadas estaticamente para armazenar os atributos, economizando significativamente memória e acelerando o acesso a esses atributos.


📚 Exemplo simples sem usar __slots__:

python
class Person: def __init__(self, name, age): self.name = name self.age = age p = Person("Alice", 30) print(p.__dict__) # {'name': 'Alice', 'age': 30}

Como você pode ver, todos os atributos são armazenados em

Blogs

Book Recommendations