[Python-ideas] [Python-Dev] Dict access with double-dot (syntactic sugar)

Westley Martínez anikom15 at gmail.com
Fri Mar 25 02:20:19 CET 2011


On Thu, 2011-03-24 at 14:03 -0700, Santoso Wijaya wrote:
> I just want to chip in that, as far as syntactic sugar go,
> `somedict:foo` looks better than `somedict..foo`.
> 
> 2c...
> 
> 
> 
> ~/santa
> 
> 
> On Thu, Mar 24, 2011 at 4:40 AM, Jameson Quinn
> <jameson.quinn at gmail.com> wrote:
>         "class attrdict" is a perennial dead-end for intermediate
>         pythonistas who want to save 3 characters/5 keystrokes for
>         item access. Other languages such as javascript allow
>         "somedict.foo" to mean the same as "somedict['foo']", so why
>         not python? Well, there are a number of reasons why not,
>         beginning with all the magic method names in python.
>         
>         
>         But saving keystrokes is still a reasonable goal.
>         
>         
>         So what about a compromise? Allow "somedict..foo", with two
>         dots, to take that place. It still saves 2 characters (often 4
>         keystrokes; and I find even ', "[", or "]" harder to type than
>         ".").
>         
>         
>         The "foo" part would of course have to obey
>         attribute/identifier naming rules. So there would be no
>         shortcut for "somedict['$#!%']". But for any identifier-legal
>         foo, the interpreter would just read ..foo as ['foo'].
>         
>         
>         I would not be surprised if I'm not the first person to
>         suggest this. If so, and there's already well-known reasons
>         why this is a bad idea, I apologize. But if the only reason
>         not to is "we never did it that way before" or "it would be
>         too addictive, and so people would never want to use older
>         python versions" or "headache for tools like pylint", I think
>         we should do it.
>         
>         _______________________________________________
>         Python-Dev mailing list
>         Python-Dev at python.org
>         http://mail.python.org/mailman/listinfo/python-dev
>         Unsubscribe:
>         http://mail.python.org/mailman/options/python-dev/santoso.wijaya%40gmail.com
>         
> 
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> http://mail.python.org/mailman/listinfo/python-ideas

That may be worse. A colon suggests relation, can be confused for
dictionary attribution assignment, and can be confused with block
declaration.




More information about the Python-ideas mailing list