id () s de objetos de método vinculados e não vinculados - às vezes iguais para objetos diferentes, às vezes diferentes para o mesmo objeto

Eu tentei algum código sobre métodos ligados e não acoplados. Quando os chamamos, acho que ambos retornariam objetos. Mas quando eu usoid() para obter alguma informação, ela retorna algo que não entendo.

IDE: Eclipse

Plugin: pydev

Class C(object):
    def foo(self):
        pass

cobj = C()

print id(C.foo)    #1
print id(cobj.foo) #2

a = C.foo
b = cobj.foo

print id(a)        #3
print id(b)        #4

E a saída é ...

5671672

5671672

5671672

5669368

Por que # 1 e # 2 retornam o mesmo id? Eles não são objetos diferentes? E se nós atribuirmosC.foo econj.foo para duas variáveis, # 3 e # 4 retornam o id diferente.

Eu acho que # 3 e # 4 mostram que eles não são o mesmo objeto, mas # 1 e # 2 ...

Qual é a diferença entre o id do método bound e um método unbound?

questionAnswers(2)

yourAnswerToTheQuestion