[Python-Dev] New syntax for 'dynamic' attribute access (original) (raw)

Raymond Hettinger python at rcn.com
Mon Feb 12 18:52:42 CET 2007


[Raymond Hettinger]

Rather than munge existing syntaxes, an altogether new one would be more clear:

self->name = self.metadata->name

[Ben North]

One thing which comes to mind about this one is that, for C/C++ programmers, the difference between

obj.member and obj->member is the interpretation of the thing on the left of the dot or arrow, whereas the PEP is discussing a new interpretation of the thing on the right of the dot.

Try not to get hung-up on meanings from other languages. Any simple syntax will have associations in other languages. It is more important that we don't create a syntax which already has strong associations in Python (i.e. curly braces, dots, and square brackets). Those syntaxes would make the language harder to mentally parse.

I would like to give the -> syntax a chance as is it simple and it is provides a nice visual distinction between closely related concepts:

a.name              --    getattr(a, 'name')
a->name           --    getattr(a, name)

Raymond



More information about the Python-Dev mailing list