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('')
See also the more general Wikipedia definition "An entity is something that
exists as itself, as a subject or as an object, actually or potentially,
concretely or abstractly, physically or not."
(https://en.wikipedia.org/wiki/Entity).
In the context of DDD, entities are usually opposed to value objects: "An object
that contains attributes but has no conceptual identity. They should be treated
as immutable.". (https://en.wikipedia.org/wiki/Domain-driven_design#Building_blocks)
Attrs, and by extension the dataclass proposal (I guess), provide some support
for both:
- Providing support for quickly constructing immutable objects from a bag of
attributes, and providing equality based on those attributes, it helps implement
Value Objects (not sure much more is needed actually)
- By supporting equality based on some "primary key", it will also help with
maintaining the concept of "equality" in entities.
I don't believe either module particularly supports or restricts immutability?
-Mike
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com