I think this should help https://stackoverflow.com/questions/1779372/python-metaclasses-vs-class-decorators
On Sat, 4 Apr, 2020, 6:12 pm Antoon Pardon, <antoon.par...@rece.vub.ac.be> wrote: > Op 29/03/20 om 16:49 schreef Peter Otten: > > Antoon Pardon wrote: > > > >> > >> I have the following program > >> > >> class slt: > >> __slots__ = () > >> > ... > >> > >> class slt1 (slt): > >> __slots__ = 'fld1', 'fld2' > >> > ... > >> > >> class slt2(slt1): > >> __slots__ = 'fld3', > >> > .... > > Anyway, here's my attempt to collect inherited slots: > > > > @classmethod > > def get_slots(cls): > > all_slots = set() > > for C in cls.__mro__: > > try: > > slots = C.__slots__ > > except AttributeError: > > assert C is object > > else: > > all_slots.update(slots) > > return all_slots > > > > I have been thinking about this. AFAIU the slots are static data. So it > seems a bit odd to calculate them with a (class) method. > > This seems a reasonable opportunity to use a class decorator or a > metaclass. But I am in doubt about which would be the better solution here. > > -- > Antoon Pardon. > -- > https://mail.python.org/mailman/listinfo/python-list > -- https://mail.python.org/mailman/listinfo/python-list