Back
Close

Journey to Master Python (WIP)

ageekymonk
8,148 views
Previous: Decorators Next: Functools Module

Slots for scaling

Python stores all the instant attributes of a class in dict. This is useful to add more run time attributes. However if we create thousands of such instances the impact of it on RAM is very high.

If we know that there are no such instance attributes at runtime then we can create millions of such objects without much impact on RAM. This can be achived by using __slots__. __slots__ tells python not to use dict but allocate fixed memory for set of attributes.

Slots
class Person():
__slots__ = ['name', 'age', 'address']
def __init__(self, name, age, address):
self.name = name
self.age = age
self.address = address
def __str__(self):
return f'Name: {self.name}\nAge: {self.age}\nAddress: {self.address}'
jason = Person('Jason Bourne', '40', 'unknown')
print(jason)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD
Online Participants