<div dir="ltr">Hello all,<div><br></div><div>I propose to add a baseclass for all namedtuples. Right now 'namedtuple'</div><div>function dynamically creates a class derived from 'tuple', which complicates</div>
<div>things like dynamic dispatch. Basically, the only way of checking if an object</div><div>is an instance of 'namedtuple' is to do "isinstance(o, tuple) and hasattr(o, '_fields')".</div><div><br>
</div><div>One possible approach would be to:</div><div><br></div><div>1. Rename 'namedtuple' function to '_namedtuple'</div><div><br></div><div>2. Add a class 'namedtuple(tuple)', with its '__new__' method proxying </div>
<div>'_namedtuple' function</div><div><br></div><div>3. Modify the class template to derive namedtuples from the 'namedtuple' </div><div>class, instead of 'tuple'</div><div><br></div><div>This way, it's possible to simple write 'isinstance(o, namedtuple)'.</div>
<div><br></div><div>I have a working patch that implements the above logic (all python unittests pass),</div><div>so if you find this useful I can start an issue on <a href="http://bugs.python.org">bugs.python.org</a>.</div>
<div><br></div><div>Thank you,</div><div>Yury</div></div>