Python 3.x 为什么实例方法指向相同的地址,但不是相同的对象?
我有以下定义一个类和两个类对象的最小代码:Python 3.x 为什么实例方法指向相同的地址,但不是相同的对象?,python-3.x,memory,Python 3.x,Memory,我有以下定义一个类和两个类对象的最小代码: 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.instan
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)
所以我对实例是否共享实例方法有点困惑。。任何人都可以在记忆中了解这里发生了什么?谢谢。这回答了你的问题吗?谢谢,但是没有。在发射这个q之前读一下。经过进一步的研究,我发现这里可能有一种叫做描述符的东西在起作用;我想从中找出一些道理。