New submission from Yurii <yu...@andrieiev.com>:
I reproduced this in python 3.8 and python 3.6. The last line displays the bug itself, all other lines do the setup and pretty much explain WHY I think that is the bug. class Class: def method(self): ... instance = Class() # expected: ids match assert id(Class.method.__get__(None, Class)) == id(Class.method) # expected: __eq__ returns True assert Class.method.__get__(None, Class) == Class.method # expected: is returns True assert Class.method.__get__(None, Class) is Class.method # expected: ids match assert id(Class.method.__get__(instance, Class)) == id(instance.method) # expected: __eq__ returns True assert Class.method.__get__(instance, Class) == instance.method # UNEXPECTED: is returns False, why?.. assert Class.method.__get__(instance, Class) is not instance.method # why? ---------- messages: 364474 nosy: yandrieiev priority: normal severity: normal status: open title: "is" operator doesn't work on method returned from method descriptor type: behavior versions: Python 3.8 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue39997> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com