<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Thu, Apr 21, 2016 at 8:42 AM Chris Angelico <<a href="mailto:rosuav@gmail.com">rosuav@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Thu, Apr 21, 2016 at 9:44 PM, Michael Selik <<a href="mailto:mike@selik.org" target="_blank">mike@selik.org</a>> wrote:<br>
> On Thu, Apr 21, 2016 at 7:30 AM Steven D'Aprano <<a href="mailto:steve@pearwood.info" target="_blank">steve@pearwood.info</a>> wrote:<br>
>><br>
>> On Thu, Apr 21, 2016 at 04:36:54PM +1000, Nick Coghlan wrote:<br>
>><br>
>> > Builtins can be extended, you just have to override all the methods<br>
>> > where<br>
>> > you want to change the return type:<br>
>><br>
>> I wonder whether we should have a class decorator which automatically<br>
>> adds the appropriate methods?<br>
><br>
><br>
> If I'm not mistaken, some of the dunders need to be overridden as part of<br>
> the class definition and can't be added dynamically without some exec a la<br>
> namedtuple. If so, are you still interested in creating that decorator?<br>
<br>
Which ones? __new__ is already covered, and AFAIK all operator dunders<br>
can be injected just fine.<br></blockquote><div><br></div><div>I have a vague memory of trouble with __repr__ when I once tried to make a sort of mutable namedtuple, but now I can't reproduce the issue.</div></div></div>