首页 > 解决方案 > 为什么实例方法指向同一个地址但不是同一个对象?

问题描述

我有以下定义一个类和两个类对象的最小代码:

class A():
    def instance_method(self):
        pass

a1 = A()
a2 = A()

a1并且a2似乎没有共享相同的实例方法,这对我来说很有意义。

assert a1.instance_method is not a2.instance_method

但是,当我检查这两种方法的 ID 时,它们看起来是相同的。

assert id(a1.instance_method) == id(a2.instance_method)

所以我对实例是否共享实例方法有点困惑。任何人都可以了解内存中发生了什么?谢谢。

标签: python-3.xmemory

解决方案


推荐阅读