姬長信(Redy)

python – 绑定和未绑定方法对象的id() – 有…


我已经尝试了一些关于绑定和未绑定方法的代码.当我们调用它们时,我认为它们都会返回对象.但是当我使用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返回相同的ID?它们不是不同的对象吗?如果我们将C.foo和conj.foo分配给两个变量,#3和#4将返回不同的id.

我认为#3和#4表明它们不是同一个对象,但#1和#2 ……

绑定方法的id和未绑定方法有什么区别?