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?