История изменений
Исправление qaqa, (текущая версия) :
В питоне ты можешь объекту добавить любое свойство, не описанное в классе.
У NamedTuple нельзя. А у dataclass и вообще любого класса есть __slots__
.
Хотя __slots__
мало кто пользуется в силу того, что никто умышленно «любое свойство» не присваивает. Опечатки отлавливаются в подавляющем большинстве случаев статическим анализатором pycharm. В случае когда используется сторонняя библиотека, где лютая динамика, и классы в runtime собираются - тут только тесты помогут.
Исправление qaqa, :
В питоне ты можешь объекту добавить любое свойство, не описанное в классе.
У NamedTuple нельзя. А у dataclass и вообще любого класса есть slots.
Хотя __slots__
мало кто пользуется в силу того, что никто умышленно «любое свойство» не присваивает. Опечатки отлавливаются в подавляющем большинстве случаев статическим анализатором pycharm. В случае когда используется сторонняя библиотека, где лютая динамика, и классы в runtime собираются - тут только тесты помогут.
Исходная версия qaqa, :
В питоне ты можешь объекту добавить любое свойство, не описанное в классе. У NamedTuple нельзя. А у dataclass и вообще любого класса есть slots.
Хотя __slots__
мало кто пользуется в силу того, что никто умышленно «любое свойство» не присваивает. Опечатки отлавливаются в подавляющем большинстве случаев статическим анализатором pycharm. В случае когда используется сторонняя библиотека, где лютая динамика, и классы в runtime собираются - тут только тесты помогут.