Author here. Questions/comments/feedback are very much appreciated! AMA
Python 2.7.10 (default, Oct 23 2015, 19:19:21)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> class A:
... def b(self): pass
...
>>> A.b
<unbound method A.b>
>>> hex(id(A.b))
'0x104e2c0a0'
>>> hex(id(A.b))
'0x104daeb90'
>>> hex(id(A.b))
'0x104daeb90'
So the `x is y` approach is "safer." :) >>> some_unbound_method = A.b
>>> hex(id(some_unbound_method))
'0x104e2c0a0' >>> foo = A.b
>>> bar = A.b
>>> hex(id(foo))
'0xdeadbeef'
>>> hex(id(bar))
'0xdecafcab'
>>> foo is bar
False