folks, what's wrong with this?

John Nagle nagle at
Fri Apr 2 15:36:44 EDT 2010

Bruno Desthuilliers wrote:
> And now for the most import point: __getattr__ is only called as a 
> *last* resort. That is, after the attribute lookup mechanism will have 
> tried *and failed* to find the name in the instance's __dict__.

    In general, "getattr" is for unusual situations only.
If you want to store objects by name, use an ordinary
dict.  Using "getattr" means you have to worry about clashes with
built-in names, the limitations of attribute syntax (BeautifulSoup
can be crashed by this), and some Unicode issues with attribute names.

    So don't do that.

					John Nagle

More information about the Python-list mailing list