"class attrdict" is a perennial dead-end for intermediate pythonistas who
want to save 3 characters/5 keystrokes for item access. Other languages such
they think, so why not python? Well, there are a number of reasons why not,
beginning with the possible conflicts with keywords or any of 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 relatively-hard-to-type characters.
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.