<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Apr 11, 2018 at 5:08 AM, Steven D'Aprano <span dir="ltr"><<a href="mailto:steve@pearwood.info" target="_blank">steve@pearwood.info</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed, Apr 11, 2018 at 08:21:01AM -0300, Joao S. O. Bueno wrote:<br>
> I just came across a code snippet that<br>
> would define a method with the "__dict__" name  - like in:<br>
><br>
> class A:<br>
>     def __dict__(self):<br>
>          return ()<br>
<br>
</span>That's a strange thing to do, but I don't think it ought to be illegal.<br>
Consenting adults and all that.</blockquote><div><br></div><div>Python's guarantee in this case goes no further than that it promises not to crash in C code. There's a rule in the language reference that says that all __dunder__ names are reserved for the implementation and they should only be used according to the documentation. So, indeed, it's not illegal, but you are not guaranteed that anything works, either.<br></div></div><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">--Guido van Rossum (<a href="http://python.org/~guido" target="_blank">python.org/~guido</a>)</div>
</div></div>