[Python-Dev] from tuples to immutable dicts (original) (raw)
Martin v. Loewis martin@v.loewis.de
24 Nov 2002 18:10:54 +0100
- Previous message: [Python-Dev] from tuples to immutable dicts
- Next message: [Python-Dev] from tuples to immutable dicts
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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:
- I'm not sure this would be useful.
- I can't imagine how to implement it, without compromising performance for tuples.
- 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
- Previous message: [Python-Dev] from tuples to immutable dicts
- Next message: [Python-Dev] from tuples to immutable dicts
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]