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

2024-04-19 13:51:12 发布

您现在位置: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\u y和tb.y是否真的调用了相同的函数。我想如果id()返回函数的地址,使用id()会告诉我答案。但现在我知道它在Python中不是这样工作的。你知道吗


Tags: 对象函数self程序idbydef成员