On Sun, Jan 12, 2014 at 10:55 PM, Steven D'Aprano <steve@pearwood.info> wrote:
On Sun, Jan 12, 2014 at 10:46:51PM +1100, Chris Angelico wrote:
On Sun, Jan 12, 2014 at 10:43 PM, Steven D'Aprano <steve@pearwood.info> wrote:
It's a tuple. It already uses __getitem__ to return items indexed by position. Adding magic so that obj["fields"] is an alias for obj._fields is, well, horrible.
It's only an alias in the simple version that I did there. If it were to be used as a means of avoiding the _fields reserved name, it wouldn't be an alias. But yes, it is somewhat magical. I was hunting for an out-of-band way to get that sort of information.
I still don't get how you think this solves the problem that the OP's use-case is to use isinstance() to identify namedtuples, then read _fields.
That was a slightly tangential comment stemming from Andrew Barnert's remark that using _fields for a public API is quirky. (Which is why I quoted him in my post.) This would no longer use an underscore name for something public. That's all. ChrisA