The meaning of "=" (Was: tough-to-explain Python)
Lawrence D'Oliveiro
ldo at geek-central.gen.new_zealand
Mon Jul 13 07:22:36 EDT 2009
In message <h3bogf$oo0$1 at panix3.panix.com>, Aahz wrote:
> In article <h3bagu$52m$4 at lust.ihug.co.nz>,
> Lawrence D'Oliveiro <ldo at geek-central.gen.new_zealand> wrote:
>>In message <h37gv5$r81$1 at panix3.panix.com>, Aahz wrote:
>>>
>>> It helps to remember that names and namespaces are in many
>>> ways syntactic sugar for dicts or lists.
>>
>>Interesting, though, that Python insists on maintaining a distinction
>>between c["x"] and c.x, whereas JavaScript doesn't bother.
>
> Why do you say "insists"?
>
> class AttrDict:
> def __getitem__(self, key):
> return getattr(self, key)
OK, let's try it:
>>> c = {}
>>> c["x"] = 3
>>> c.x = 4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'x'
>>> class AttrDict:
... def __getitem__(self, key):
... return getattr(self, key)
...
>>> c.x = 4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'x'
Nope, still doesn't work...
More information about the Python-list
mailing list