(original) (raw)

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.