id () объектов привязанного и несвязанного метода - иногда одинаковые для разных объектов, иногда разные для одного и того же объекта

мы попробовали некоторый код о связанных и несвязанных методах. Когда мы их вызываем, я думаю, что они оба будут возвращать объекты. Но когда я используюid() для получения некоторой информации, она возвращает то, что я неТ понять.

IDE: Затмение

Плагин: 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

И вывод ...

5671672

5671672

5671672

5669368

Почему # 1 и # 2 возвращают один и тот же идентификатор? Арен»они разные объекты? И если мы назначимC.foo а такжеconj.foo для двух переменных # 3 и # 4 возвращают разные идентификаторы.

Я думаю, что № 3 и № 4 показывают, что это не один и тот же объект, но № 1 и № 2 ...

В чем разница между идентификатором связанного метода и несвязанного метода?