Что выведет код?
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 хранит свои атрибуты в
__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