The thing is, the source code is in string. They later format it using % locals(). If the tuple was listed in argtxt, the tuple.__new__ would have called __new__ method on whatever the tuple field contained. _tuple works as expected because namedtuple doesn't allow field names starting with _.

The bug was fixed in Python 2.6.3 release (see the changelog - collections.namedtuple() was not working with the following field names: cls, self, tuple, itemgetter, and property.).