Hacker News new | ask | show | jobs
by j88439h84 2918 days 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

1 comments

Because they’re in the standard library, and convenient. I would never use a third-party package just for some syntactic sugar.
I 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?
Simple != easy. It is easy to add another dependency, but you've just added another piece to the puzzle that needs to be maintained.
That assumes you have a project. Some people write scripts in Python to use in the shell.
venvs work fine in the shell. See pipsi for automatic creation/management of the necessary venvs.
Some 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 ...".

It's one more thing that can break in production.