
On 25.05.2016 22:11, Ethan Furman wrote:
On 05/25/2016 12:38 PM, Sven R. Kunze wrote:
Maybe, it's just me but I still tend to think that using unquoted strings should be reserved for attribute unpacking.
lists, tuples, and dicts are basic containers -- having syntax to unpacak them easily is a clear win; attribute unpacking not so much:
Wait a second. Reading your example below, do you imply that dicts actually should provide something like a attribute access to its keys?
d = {'a': 1,'b': 2} d.b 2
Wouldn't this solution be equally readable/useful? I am just asking as it seems that you find accessing a dict to be straining. So, unpacking it would a one solution but providing attribute-like access to it would be another solution to that problem.
--> some_long_object_name = MyClass(blah, blah) --> s = some_long_object_name --> s.name some value --> s.value --> another value
which is sufficiently readable.
I see your point. But let me explain how I approached the problem by considering it from the the "new users" perspective. Really fast, he will build up the following associations: attributes <-> .abc dict keys <-> ['abc'] or [other stuff] list/tuple keys <-> [123] So, from his perspective everything is clearly separated: lists/tuples use integers, dicts use mostly strings with quotes and objects have attributes which can be used like normal variables without quotes. Mixing things up (by removing/mixing the visual indicators), makes me feel nervous about the consistent perception of Python. Maybe, it's just FUD on my side but I can't help this feeling. Best, Sven