python内存结构懵逼了,求解

图片说明
python中不是一切皆对象吗?
本例中测试list对象......
首先个人理解:
1.list类在内存中,所有list对象都有指向list类的索引,可以引用类中的方法(e.g.append方法)
2.那么不同列表l1, l2在引用同一方法append时,l1.append和l2.append不应该相等吗?
3.看图,可以发现l1.append和l2.append所描述的地址不相等(at后面的十六进制部分)
4.看图,id(l1.append)和id(l2.append)却是相等的 --- 这点与我理解的内存结构相符
5.问题来了,3中地址不相等,但是在4中有相等了,不是矛盾了?

2个回答

kc_1197977022
Mr.杨. 已解决,看错了at后的地址指的是列表实例对象的地址而不是方法对象append的地址
3 年多之前 回复

id也可能不一样 In [1]: a=[1,2] In [2]: b=[2,3] In [3]: print(a.append) In [4]: print(b.append) In [5]: print(id(b.append)) 547829286664 In [6]: print(id(a.append)) 547828557000

kc_1197977022
Mr.杨. 已解决,看错了at后的地址指的是列表实例对象的地址而不是方法对象append的地址
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问