id()
发生了什么?我有以下代码:
a = np.asarray([1,2,3])
b = np.asarray([4,5,6])
c = np.asarray([a, b])
id_1 = id(c[0][0])
id_2 = id(a[0])
id_3, id_4 = id(c[0][0]), id(a[0])
id_1
和id_2
不同,但id_3
和id_4
相同。我正在使用Python 2.7。
任何人都可以解释这种行为吗? 抱歉我的英文。
答案 0 :(得分:0)
来自文档:
CPython实现细节:这是内存中对象的地址。
这让我觉得每个构建都可以以不同的方式处理这个功能。对于Cpython,它是内存中的地址。
看起来你正在使用numpy。我猜测c实际上包含数组a和b的副本。这意味着id_1和id_2会有所不同。同样,我希望id_1 == id_3
和id_2 == id_4
。