【发布时间】:2023-04-02 13:19:01
【问题描述】:
我注意到,对于整数和字符串:
a=1 ; b=1
c='abc' ; d='abc'
print(id(a), id(b))
print(id(c), id(d))
在这种情况下,a
将与b
共享相同的内存地址,c
将与d
共享相同的内存地址
另一方面,对于列表,设置...等:
e=[1,2,3] ; f=[1,2,3]
g=(1,2,3) ; h=(1,2,3)
i={1,2,3} ; j={1,2,3}
k={"a":1,"b":2} ; l={"a":1,"b":2}
print(id(e), id(f))
print(id(g), id(h))
print(id(i), id(j))
print(id(k), id(l))
在这种情况下,e
不会与f
共享相同的内存地址,g
不会与h
共享相同的内存地址......等等。
所以我想问一下:
- python为不同的数据类型分配内存有什么原则吗?
- python官方文档对此有解释吗? (我找不到)
谢谢
【问题讨论】:
-
Python 允许,但不需要,可以重用不可变对象。不要依赖这种行为。 Python 也允许但不要求在其生命周期结束后重用任何对象的内存;不要假设两个生命周期不重叠的对象会有不同的
id
值。
标签:
python
python-3.x
memory
data-structures
memory-management
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中如何为不同的数据类型分配内存? - Python技术站