On Thu, 10 Nov 2011 14:19:18 -0700, Ian Kelly wrote: > On Thu, Nov 10, 2011 at 1:37 PM, Devin Jeanpierre > <jeanpierr...@gmail.com> wrote: >> Of course not. I do, however, think that it's conceivable that I'd want >> to key a namedtuple by an invalid identifier, and to do that, yes, I'd >> need to use getattr(). > > Care to give a real use case?
A common use-case is for accessing fields from an external data source, using the same field names. For example, you might have a database with a field called "class", or a CSV file with columns "0-10", "11-20", etc. Personally, I wouldn't bother using attributes to access fields, I'd use a dict, but some people think it's important to use attribute access. > You could even go a step further and use, > say, arbitrary ints as names if you're willing to give up getattr() and > use "ob.__class__.__dict__[42].__get__(ob, ob.__class__)" everywhere > instead. The fact that somebody might conceivably want to do this > doesn't make it a good idea, though. Obviously you would write a helper function rather than repeat that mess in-line everywhere. -- Steven -- http://mail.python.org/mailman/listinfo/python-list