[Python-Dev] Summary of "dynamic attribute access" discussion

Guido van Rossum guido at python.org
Tue Feb 13 20:22:53 CET 2007


I think the point of attrview() and x.[y] and getattr()/setattr() is
that these should be usable regardless of whether the object is
prepared for such use; they map directly to __getattr__ and
__setattr__. If I had to design an object specifically for such
dynamic access, sure, I'd implement __getitem__ and friends and the
need wouldn't exist. For that specific object. But the use case of
general objects is different.

On 2/13/07, Aahz <aahz at pythoncraft.com> wrote:
> On Tue, Feb 13, 2007, Ben North wrote:
> >
> > I think the "obj.[attr_name]" syntax has the most support.  To stop this
> > going round in circles for ages, then, I will take this as the winner.
> > I'll mention the other contenders in the PEP, including the new
> > "visually distinctive" suggestions
> >
> >    obj@[foo]
> >    obj.[[foo]]
> >
> > and the "wrapper class" idea of Nick Coghlan:
> >
> >    attrview(obj)[foo]
>
> For most cases where this is needed, why not just use a mixin class?
> That works perfectly well with current Python and doesn't even look
> funny:
>
>     obj[foo] = blah
>     print obj[foo]
>
> My company makes heavy use of this coding style, we can use obj.foo
> whenever appropriate.
> --
> Aahz (aahz at pythoncraft.com)           <*>         http://www.pythoncraft.com/
>
> "I disrespectfully agree."  --SJM
> _______________________________________________
> 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/guido%40python.org
>


-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-Dev mailing list