[Python-Dev] New syntax for 'dynamic' attribute access

Raymond Hettinger python at rcn.com
Mon Feb 12 10:25:54 CET 2007


[Jack Jansen]
> I like the functionality, but I don't like the syntax, to me it looks
> too much like a method call.
>
> To me self.[method_name] = self.metadata.[method_name] looks better:
> what we're doing here is more like dictionary lookup than calling
> functions.

I also like the functionality.

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

   self->name = self.metadata->name

I like the arrow syntax because is the lookup process can be more involved
than a simple dictionary lookup (perhaps traveling up to base classes).
IOW, getattr(a,n) is not always the same as a.__dict__[n].
The a.__getattribute__(n) process can be more complex than that
and a bracketed dictionary-like syntax would misleadingly mask the lookup 
process.


Raymond 




More information about the Python-Dev mailing list