请考虑以下事项
class A(object):
def foo(self):
pass
a = A()
# accessing a's foo seems consistent
init1 = a.foo
init2 = a.foo
assert init1 == init2
assert id(a.foo) == id(a.foo)
# Or is it?
foos= [a.foo for i in range(10)]
ids = [id(foo) for foo in foos]
for i, id_ in enumerate(ids):
for j, id__ in enumerate(ids):
if i != j:
assert id_ != id__
看起来id(a.foo)
可以等于id(a.foo)
,也不能等于id(a.foo)
,但我不能理解它什么时候相同,什么时候不相同.
请解释一下这是怎么回事.