Вы полностью неправильно используете __slots__
. Это предотвращает создание __dict__
для экземпляров. Это имеет смысл только в том случае, если вы столкнетесь с проблемами памяти со многими небольшими объектами, потому что избавление от __dict__
может уменьшить занимаемую площадь. Это жесткая оптимизация, которая не требуется в 99,9% случаев.
Если вам нужна безопасность, которую вы описали, то Python действительно не тот язык. Лучше использовать что-то строгое, например, Java (вместо того, чтобы пытаться писать Java на Python).
Если вы не могли сами понять, почему атрибуты класса вызвали такие проблемы в вашем коде, то, возможно, вам стоит подумать о введении таких языковых хаков. Вероятно, было бы разумнее сначала ознакомиться с языком.
Просто для полноты вот ссылка на документацию для слотов .