On Sep 27, 2019, at 8:23 PM, Guido van Rossum <guido@python.org> wrote:
I think a sentinel like None or a new typing.use_annotations_for_slots (need a better name, of course) would be better than a magic string, especially since strings are iterable.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: floaty: 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: floaty: float(Though arguably that's just as wacky. :-)
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-leave@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/3632QSWTPCQ34CJ3CRJH2DKGS26WG55O/
Code of Conduct: http://python.org/psf/codeofconduct/