
On Fri, Sep 27, 2019 at 11:18 AM Serhiy Storchaka <storchaka@gmail.com> wrote:
I think it needs an explicit support in the type creation machinery (as __slots__ itself has) to support descriptors and slots with the same name.
That would be tough, since __slots__ is currently implemented by creating a separate descriptor for each slot. I do think that it would be nice to have a way to automatically create __slots__ from annotations. It would be even nicer if that could be done without copying the class object (as the current state of the art requires: https://github.com/ericvsmith/dataclasses/blob/master/dataclass_tools.py#L23 ). Thinking aloud, perhaps this could be done by setting __slots__ to a magical value, e.g. class Point: __slots__ = "__auto__" x: float y: float This would be independent from the @dataclass decorator (though the decorator may have to be aware of the magic value). If that's too wacky, we could also use a class keyword argument: class Point(slots=True): x: float y: float (Though arguably that's just as wacky. :-) -- --Guido van Rossum (python.org/~guido) *Pronouns: he/him **(why is my pronoun here?)* <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-c...>