Использование __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
Использование __slots__?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.