On 12 October 2017 at 11:20, Steve Holden
On Thu, Oct 12, 2017 at 9:20 AM, Mike Miller
wrote: On 2017-10-12 00:36, Stéfane Fermigier wrote:
"An object that is not defined by its attributes, but rather by a thread of continuity and its identity." (from https://en.wikipedia.org/wiki/ Domain-driven_design#Building_blocks)
Not sure I follow all this, but Python objects do have identities once instantiated. e.g. >>> id('')
It seems to me that the quoted document is attempting to make a
distinction similar to the one between classes (entities) and instances (value objects). The reason I liked "row" as a name is because it resembles "vector" and hence is loosely assocaited with the concept of a tuple as well as being familiar to database users. In fact the answer to a relational query was, I believe, originally formally defined as a set of tuples.
But rows and tuples are usually immutable, at least in database terms. These data classes are not immutable (by default). If you want tuple-like behaviour, you can continue to use tuples. I see dataclasses as something closer to C `struct`. Most likely someone already considered `struct` as name; if not, please consider it. Else stick with dataclass, it's a good name IMHO.