Armin Rigo <arigo@tunes.org> writes: > This goes against the initial proposal, which was to have a > lightweight and declaration-less way to build structures. Yes. I never had the need for a lightweight and declaration-less way to build structures. What is the need? > point = {'x': 5, 'y': 6} > print point['x'] > print point['y'] > > which looks reasonably if not quite entierely nice. If looking reasonable, or even nice, is the goal, why not write class Point: def __init__(self, x, y): self.x, self.y = x, y point = Point(5, 6) #or point = Point(x=5, x=6) print point.x print point.y > The problem is that it is incompatible with tuples: you cannot > smoothly go from tuples to dicts without changing your whole > program. So you need to enhance class Point def __getitem__(self, index): if index == 0:return self.x if index == 1:return self.y raise IndexError > What about just allowing keyword parameters in 'tuple'? > > point = tuple(5, 6, color=RED, visible=False) I have to problems imagining such an extension: 1. I'm not sure this would be useful. 2. I can't imagine how to implement it, without compromising performance for tuples. 3. It can be easily implemented without any change to builtin types: class Tuple(tuple): pass def TUPLE(*args, **kw): res = Tuple(args) res.__dict__=kw return res point = TUPLE(5, 6, color="RED", visible=False) print point[0] print point.color Regards, Martin
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4