In message <[email protected]>, Aahz wrote:

> In article <[email protected]>,
> Lawrence D'Oliveiro  <[email protected]_zealand> wrote:
>>In message <[email protected]>, 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...

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to