0:00
0:29
0:29

How Senior Devs cut Python memory usage by 50% (and the trap it creates!) #pythoninterviewquestions

Education

Look closely at this Python class. We make a player, give them 50 armor, and print it. Does this print 50? (Hint: NO, it crashes instantly!) 🛑👇 If you thought this prints 50, you just fell into the __slots__ trap! Normally, Python classes store variables in a hidden dictionary (__dict__). This makes it incredibly easy to add new attributes on the fly, but it eats up a massive amount of memory. By defining __slots__ = ['name', 'health'], we are using a Senior Dev optimization trick. This tells Python to completely delete that hidden dictionary, saving tons of memory! 💾 BUT here is the massive catch: Your class is now strictly locked. Because we deleted the dictionary, we can never add a new attribute dynamically. When we try to add armor on line 9, Python actively blocks it and throws an AttributeError! 💥 Did you spot the __slots__ trap, or did you think it would print 50? Let me know in the comments! 🗣️👇 🔥 Want to master the hidden mechanics of Python? Smash that subscribe button for daily coding interview questions, deep dives, and OOP secrets! 🚀 #python #pythonprogramming #softwareengineer #coding #techinterview #oop #computerscience #codingbootcamp #pythondeveloper

ADVERTISEMENT

Comments 3

Sign in to join the conversation

Sign in
C
christopher_moon 2 weeks, 1 day ago

Can you explain what this code is?

E
ethan.santos 2 weeks, 3 days ago

I haven't gotten this far into python yet! I understood parts of it, but the __slots__ wasn't familiar, good to know though!

mariacecíliaalbuquerque427
mariacecíliaalbuquerque427 2 weeks, 3 days ago

i did right! who too?