🐍 Укус питона 🐍
2.47K subscribers
1.07K photos
25 videos
285 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Что выведет код?

def f():
xs = []
for x in range(3):
xs.append(lambda: x)
ys = [(lambda: y) for y in range(3)]
return [fn() for fn in xs], [fn() for fn in ys], x

print(f())
👩‍💻 Слотирование классов — экономия памяти и ускорение Python-объектов

По умолчанию каждый объект в Python хранит свои атрибуты в __dict__, что гибко, но затратно по памяти.

С помощью __slots__ можно задать фиксированный набор атрибутов — без словаря


➡️ Пример:

class User:
__slots__ = ("name", "age")
def __init__(self, name, age):
self.name = name
self.age = age

u = User("Анна", 25)
u.city = "Москва" # AttributeError


📌 __slots__ экономит память (до 30–40%) и ускоряет доступ к атрибутам.
Please open Telegram to view this post
VIEW IN TELEGRAM