Я слышал, что __slots__
делает объекты быстрее, избегая поиска в словаре. Моя путаница исходит из того, что Python является динамичным языком. На статическом языке мы избегаем поиска словаря для a.test
, выполняя оптимизацию времени компиляции, чтобы сохранить индекс в инструкции, которую мы запускаем.
Теперь, в Python, a
также может быть легко другим объектом, который имеет словарь или другой набор атрибутов. Похоже, нам все равно придется искать словарный словарь - единственное отличие состоит в том, что нам нужен только один словарь для класса, а не словарь для каждого объекта.
С этим рациональным,
- Как
__slots__
избежать поиска в словаре? - Доступно ли слотам быстрее доступ к объектам?