Python の docs re build-in functionからの抜粋をid()
次に示します。
== id(object) ==
Return the “identity” of an object. This is an integer (or long integer) which is
guaranteed to be unique and constant for this object during its lifetime.
Two objects with non-overlapping lifetimes may have the same id() value.
CPython implementation detail: This is the address of the object in memory.
では...次の例ではなぜ変化するのでしょうか?
>>> class A(object):
... def f(self):
... return True
...
>>> a=A()
>>> id(a.f)
Out[21]: 62105784L
>>> id(a.f)
Out[22]: 62105784L
>>> b=[]
>>> b.append(a.f)
>>> id(a.f)
Out[25]: 50048528L