Я пробовал некоторый код о связанных и несвязанных методах. Когда мы их называем, я думаю, что оба они вернут объекты. Но когда я использую id()
для получения некоторой информации, он возвращает то, что я не понимаю.
IDE: Eclipse Плагин: 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...
В чем разница между идентификатором связанного метода и несвязанным методом?