""" A class equivalent to the class statement below would be generated by this code: >>> import collections >>> Point = collections.plainclass('Point', 'x y') """ class Point(object): __slots__ = ['x', 'y'] # save memory in the likely event there are many instances def __init__(self, x, y): self.x = x self.y = y def __repr__(self): return 'Point({!r}, {!r})'.format(self.x, self.y) def __eq__(self, other): if not isinstance(other, Point): return NotImplemented return self.x == other.x and self.y == other.y def __iter__(self, other): # support unpacking yield self.x yield self.y