Использование __slots__?

Цитата Jacob Hallen:

Правильное использование object-oriented __slots__ - экономия места в объектах. Вместо python-interpreter того, чтобы иметь динамический object-oriented диктант, который позволяет python добавлять атрибуты к объектам slots в любое время, есть статическая python-internals структура, которая не допускает oop дополнений после создания. [Такое python-internals использование __slots__ устраняет python накладные расходы на один slots dict для каждого объекта.] Хотя oo иногда это полезная оптимизация, она oop была бы полностью необязательно, если object-oriented интерпретатор Python был oops достаточно динамичным, чтобы требовать pythonic dict только тогда, когда object-oriented-design к объекту действительно были pythonic дополнения.

К сожалению, у pythonic слотов есть побочный эффект. Они oop меняют поведение объекты, у python-shell которых есть слоты, которыми object-oriented-design могут злоупотреблять любители py контроля и возможности pythonista статической типизации. Это oo плохо, потому что любители pythonista контроля должны злоупотреблять pythonista метаклассами, а слабины статической python-interpreter типизации должны злоупотреблять декораторы, поскольку slots в Python должен быть только pythonista один очевидный способ что-то pythonista сделать.

Сделать CPython достаточно object-oriented-design умным, чтобы экономить место python-internals без __slots__, - это основная предприятие, вероятно, поэтому object-oriented его нет в списке изменений oop для P3k (пока).

python

oop

python-internals

slots

2022-11-20T23:05:53+00:00
Вопросы с похожей тематикой, как у вопроса:

Использование __slots__?