[Python-ideas] Add recordlcass to collections module

Greg Ewing greg.ewing at canterbury.ac.nz
Sun Sep 2 19:09:54 EDT 2018


Zaur Shibzukhov wrote:

 > `Recordclass` is defined on top of` memoryslots` just like `namedtuple`
 > above` tuple`. Attributes are accessed via a descriptor (`itemgetset`),
 > which supports both` __get__` and `__set__` by the element index.
 >
 > As a result, `recordclass` takes up as much memory as` namedtuple`, it
 > supports quick access by `__getitem__` /` __setitem__` and by attribute
 > name via the protocol of the descriptors.

I'm not sure why you need a new C-level type for this. Couldn't you
get the same effect just by using __slots__?

e.g.

class C:

      __slots__ = ('attr_1', ..., 'attr_m')

      def __new __ (cls, attr_1, ..., attr_m):
          self.attr_1 = attr_1
          ...
          self.attt_m = attr_m

-- 
Greg


More information about the Python-ideas mailing list