A raw namedtuple is very memory efficient as it packs the attributes in a struct to get rid of the `__dict__` of attributes in particular it does not copy the string for the keys on each instance.

By deriving a namedtuple class just to introduce the `__repr__` method we would also reintroduce the `__dict__` on the instance. By telling the python interpreter that this subclass uses static `__slots__` instead of dynamic attributes. Furthermore we don't need any additional slot in the subclass so we set `__slots__` to the empty tuple.

See the examples in: http://docs.python.org/2/library/collections.html#namedtuple-factory-function-for-tuples-with-named-fields