Steven Bethard wrote: > 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')
Sorry, typo here. This should have read Point = namedtuple('Point', 'width height') > size = Point(width=23, height=45) > w, h = size STeVe -- http://mail.python.org/mailman/listinfo/python-list