rndblnch wrote: > my goal is to implement a kind of named tuple. > idealy, it should behave like this: > p = Point(x=12, y=13) > print p.x, p.y > but what requires to keep track of the order is the unpacking: > x, y = p > i can't figure out how to produce an iterable that returns the values > in the right order. > relying on a "natural" order of the key names is not possible: x, and > y are alphabetically sorted but the following example should also > work: > size = Point(width=23, height=45) > w, h = size
There are a couple of recipes for named tuples: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/502237 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/500261 The latter of these will be in Python 2.6. Using that recipe, and your example, you would write:: Point = namedtuple('Point', 'x y') p = Point(x=12, y=13) x, y = p Point = namedtuple('Point', 'width', 'height') size = Point(width=23, height=45) w, h = size STeVe -- http://mail.python.org/mailman/listinfo/python-list