为什么id()为成员函数返回相同的值?

时间:2014-06-03 04:34:34

标签: python

以下python程序中的所有id()都打印相同的值。我原以为不同的成员函数是不同的对象,因此id()应该返回不同的值。为什么id()会返回相同的值?

class A():
    def x(self):
            print 'x'
    def __y(self):
            print 'y'
    def y(self):
            self.__y()

class B(A):
    def x(self):
            self.jj = 20
            print 'bx'
    def __y(self):
            self.sj = 20
            print 'by'
            print 'by'

ta = A()
tb = B()

ta.x()
ta.y()
ta._A__y()

tb.x()
tb._A__y()
tb._B__y()
tb.y()

print id(ta.x)
print id(ta.y)
print id(ta._A__y)
print id(tb.x)
print id(tb._A__y)
print id(tb._B__y)
print id(tb.y)

下一个问题(实际上那是我原来的问题)是,如何检查tb._A__y和tb.y是否真的调用相同的函数。我曾经使用id()告诉我如果id()返回一个函数的地址的答案。但现在我认为它在Python中不起作用。

0 个答案:

没有答案