LINUX.ORG.RU

История изменений

Исправление qaqa, (текущая версия) :

В питоне ты можешь объекту добавить любое свойство, не описанное в классе.

У NamedTuple нельзя. А у dataclass и вообще любого класса есть __slots__.

Хотя __slots__ мало кто пользуется в силу того, что никто умышленно «любое свойство» не присваивает. Опечатки отлавливаются в подавляющем большинстве случаев статическим анализатором pycharm. В случае когда используется сторонняя библиотека, где лютая динамика, и классы в runtime собираются - тут только тесты помогут.

Исправление qaqa, :

В питоне ты можешь объекту добавить любое свойство, не описанное в классе.

У NamedTuple нельзя. А у dataclass и вообще любого класса есть slots.

Хотя __slots__ мало кто пользуется в силу того, что никто умышленно «любое свойство» не присваивает. Опечатки отлавливаются в подавляющем большинстве случаев статическим анализатором pycharm. В случае когда используется сторонняя библиотека, где лютая динамика, и классы в runtime собираются - тут только тесты помогут.

Исходная версия qaqa, :

В питоне ты можешь объекту добавить любое свойство, не описанное в классе. У NamedTuple нельзя. А у dataclass и вообще любого класса есть slots.

Хотя __slots__ мало кто пользуется в силу того, что никто умышленно «любое свойство» не присваивает. Опечатки отлавливаются в подавляющем большинстве случаев статическим анализатором pycharm. В случае когда используется сторонняя библиотека, где лютая динамика, и классы в runtime собираются - тут только тесты помогут.