On 12 October 2017 at 11:20, Steve Holden <steve@holdenweb.com> wrote:
On Thu, Oct 12, 2017 at 9:20 AM, Mike Miller <python-dev@mgmiller.net> 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.