Steven D'Aprano <steve+pyt...@pearwood.info> added the comment:

The ``is`` operator returns False because the two objects are different objects.

Methods are descriptors, and whenever you access an instance method, you get a 
brand-new method object. This is described in the documentation for descriptors:

https://docs.python.org/3/howto/descriptor.html#functions-and-methods

The last two tests in your example both call id(a.a), which returns the same ID 
number for precisely the same reason as we explained in your previous bug 
report #36156. Since the two "a.a" method objects don't exist at the same time, 
the interpreter is permitted to re-use the same ID number for them.

P.S. remember in the previous bug report you raised, I asked you to use less 
awkward and confusing names? "a.a" is a terrible name, even for a simple 
example like this. It makes it hard to talk about what is going on when "a" is 
an instance and also a method.

----------
nosy: +steven.daprano
resolution:  -> not a bug
stage:  -> resolved
status: open -> closed

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue36163>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to