遇到一個朋友,給我提了一個問題:python中的兩個相同的值,內存地址是否一樣?
當時印象里有這樣一句話:Python采用基於值的內存管理模式,相同的值在內存中只有一份
於是張嘴就說是一樣的
朋友說不是這樣,也分情況,之后回家查閱了一些資料,想着應該記錄下來,防止朋友們踩坑
1.整數、字符串是真正意義上的值,而內存只有一份指的是較小的值
對於(-5~256)之間的整數,會在內存中進行緩存,兩個相同的整數只開辟一份內存,當地址引用為0時,內存自動刪除
2.對於元組、字典、列表、集合以及range、map等容器類對象,這些的值看起來一樣,但內存卻不是保存一份
3.同一個列表 或者元組 中,大的整數 在內存中會保存同一個地址
4.對於實數(有理數、無理數)來說(不包括-5~256),地址是不同的
寫的若有錯誤或者不足的地方,希望大家能夠提出意見或者進行補充
