Или это плохая идея?
Если требуется, то у тебя нет варианта не добавлять А если не требуется, то и не добавляй
Не требуется, но по ощущениям как-будто в будущем будет проще если добавляю
А про датаклассы из стандартной библиотеки читал?
Советую почитать про сравнение dataclass и attrs :)
В эпоху победивших датаклассов использование вместо них attrs требует серьёзного обоснования.
Кстати интересно почему датаклассы победили
потому что в стдлибе
attrs тяжеловеснее и их функциональность чаще всего не особо востребована.
а почему в стдлибу добавили?)
тяжеловеснее значит просто пакет больше или больше работы делают при определении класса?
Потому что шёл двадцать седьмой год существования языка, а в питоне всё ещё классы недоделанные :D
Значит что фич больше, следовательно, поддерживать сложнее и потенциально больше ошибок и неочевидного поведения. Это нормально, если мы готовы в этом разбираться, потому что проект завязан на этих полезных фичах. А базовые инструменты получаются приятнее, когда простые.
А attrs пишут, что наоборот меньше проблем будет с ними :)))
https://www.attrs.org/en/stable/why.html#data-classes While Data Classes are implementing features from attrs every now and then, their presence is dependent on the Python version, not the package version. For example, support for __slots__ has only been added in Python 3.10, but it doesn’t do cell rewriting and therefore doesn’t support bare calls to super(). This may or may not be fixed in later Python releases, but handling all these differences is especially painful for PyPI packages that support multiple Python versions. And of course, this includes possible implementation bugs.
То есть они добавляют проблем? И на фига тогда?
Ну, тут не совсем про это.
Обсуждают сегодня