Message336981
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. |
|
Date |
User |
Action |
Args |
2019-03-02 02:36:48 | steven.daprano | set | recipients:
+ steven.daprano, lgj1993 |
2019-03-02 02:36:48 | steven.daprano | set | messageid: <1551494208.65.0.716214249409.issue36163@roundup.psfhosted.org> |
2019-03-02 02:36:48 | steven.daprano | link | issue36163 messages |
2019-03-02 02:36:48 | steven.daprano | create | |
|