加载中...

Python变量的缓存机制

当然,我会帮你整理这些Python代码并转化为Markdown格式的笔记。以下是你的Markdown笔记:


Python变量的缓存机制

在Python 3.6版本中,对于某些类型的变量,如果它们的值相同,那么它们在内存中的地址(即它们的id)也可能相同。这种现象称为变量的缓存机制。

1. 整型

对于整型而言,-5到正无穷范围内的相同值,它们的id一致。

var1 = 5
var2 = 5
print(id(var1), id(var2))  # 输出:相同的id

var1 = -100
var2 = -100
print(id(var1), id(var2))  # 输出:不同的id

2. 浮点数

对于浮点数而言,非负数范围内的相同值,它们的id一致。

var1 = 4.67
var2 = 4.67
print(id(var1), id(var2))  # 输出:相同的id

var1 = -4.67
var2 = -4.67
print(id(var1), id(var2))  # 输出:不同的id

3. 布尔值

对于布尔值而言,值相同情况下,它们的id一致。

var1 = True
var2 = True
print(id(var1), id(var2))  # 输出:相同的id

4. 复数

对于复数在实数+虚数的结构中,它们的id永不相同(只有虚数的情况例外)。

var1 = 4 + 5j
var2 = 4 + 5j
print(id(var1), id(var2))  # 输出:不同的id

var1 = 5j
var2 = 5j
print(id(var1), id(var2))  # 输出:相同的id

5. 字符串和空元组

对于字符串和空元组,值相同的情况下,它们的id相同。

var1 = "你"
var2 = "你"
print(id(var1), id(var2))  # 输出:相同的id

var1 = ()
var2 = ()
print(id(var1), id(var2))  # 输出:相同的id

6. 列表、元组、字典、集合

对于列表、元组、字典、集合,无论什么情况,它们的id标识都不同(空元组例外)。

var1 = [1,2,3]
var2 = [1,2,3]
print(id(var1), id(var2))  # 输出:不同的id

var1 = (1,2)
var2 = (1,2)
print(id(var1), id(var2))  # 输出:不同的id

希望这个Markdown笔记对你有所帮助!

posted @ 2024-03-01 17:51  江寒雨  阅读(62)  评论(0)    收藏  举报