A related, albeit simpler, Python quirk.<p><pre><code> >>> a = 100
>>> b = 100
>>> a is b
True
>>> a = 1000
>>> b = 1000
>>> a is b
False</code></pre>
Note that the descriptor protocol itself is not causing this behavior. What actually happens here is that functions are descriptors (they implement __get__()) that generate the instancemethod object on attribute access.
More info here: <a href="https://wiki.python.org/moin/FromFunctionToMethod" rel="nofollow">https://wiki.python.org/moin/FromFunctionToMethod</a>
>In 3, this distinction between bound and unbound doesn’t exist, but strangely, the docs for Python 3 are not up to date<p>Is there a place for raising documentation bugs?