[pypy-issue] Issue #2619: Difference between variables assigned bound methods in PyPy and CPython (pypy/pypy)

Daniel Sutcliffe issues-reply at bitbucket.org
Wed Jul 26 19:42:58 EDT 2017


New issue 2619: Difference between variables assigned bound methods in PyPy and CPython
https://bitbucket.org/pypy/pypy/issues/2619/difference-between-variables-assigned

Daniel Sutcliffe:

Apologies if this is covered in in the [differences](http://doc.pypy.org/en/latest/cpython_differences.html) I have read through several times and been extra careful in [section about `id` and `is`](http://doc.pypy.org/en/latest/cpython_differences.html#object-identity-of-primitive-values-is-and-id) but I don't think it applies to this situation.

A bit of code should easily show where the difference is:  
```
#!python
class Foo:
     def method(self):
        pass

foo = Foo()
mth = foo.method
assert(mth is not foo.method)
```
This works fine in CPython (2.7.13 and 3.5.3) but gives an AssertionError in PyPy 5.8.0 for both the 2.7.13 and 3.5.3 builds.

Unbound method assignments seem to work the same in my testing.




More information about the pypy-issue mailing list