5 ms·
Can anyone explain why you'd want to use dataclasses over attrs in real code? Attrs does everything they do and more. "Data Classes are intentionally less powe
by j88439h84 8y ago
Can anyone explain why you'd want to use dataclasses over attrs in real code? Attrs does everything they do and more.
"Data Classes are intentionally less powerful than attrs. There is a long list of features that were sacrificed for the sake of simplicity and while the most obvious ones are validators, converters, and __slots__, it permeates throughout all APIs."
See: http://www.attrs.org/en/stable/why.html#data-classes http://www.attrs.org/en/stable/why.html#data-classes
- Spiritus 8y agoBecause they’re in the standard library, and convenient. I would never use a third-party package just for some syntactic sugar.
- j88439h84 8y agoI don't understand the inconvenience. Isn't it just adding `attrs` to requirements.txt once for the whole project, and then you get more features ever after?
- lozenge 8y agoThat assumes you have a project. Some people write scripts in Python to use in the shell.
- icebraining 8y agovenvs work fine in the shell. See pipsi for automatic creation/management of the necessary venvs.
- eesmith 8y agoSome people write simple programs which they then (say) email to others, or put on a blog post, or on a gist, or a SO answer. If the simple program depends only on core Python, then they don't also have to say "oh, and also install ...".
- michaelmcmillan 8y agoSimple != easy. It is easy to add another dependency, but you've just added another piece to the puzzle that needs to be maintained.
- JustSomeNobody 8y agoIt's one more thing that can break in production.