定义两个变量,为它们赋予相同的值,并将这两个变量的指针打印出来,然后分别按照缓存的具体规则分别为它们赋值,观察赋值后的两个变量的指针是否相等。如果相等,则表明在Python内部对其使用了缓存机制。
例如:
#在范围[-5, 256]之间的小整数
int1=-5
int2=-5
print("[-5, 256]情况下的两个变量指针",id(int1),id(int2))
#对于字符串
s1="3344"
s2= "3344"
print("字符串情况下的两个变量指针",id(s1),id(s2))
#大于256的整数
int3=257
int4=257
print("大于256的整数情况下的两个变量指针",id(int3),id(int4))
#大于0的浮点数
f1=256.4
f2=256.4
print("大于0的浮点数情况下的两个变量指针",id(f1),id(f2))
#小于0的浮点数
f1=-2.45
f2=-2.45
print("小于0的浮点数情况下的两个变量指针",id(f1),id(f2))
#小于-5的整数
n1=-6
n2=-6
print("小于-5的整数情况下的两个变量指针",id(n1),id(n2))
def fun():
#[-5,256]
int1=-5
print("fun中-5的指针",id(int1),id(int2))
#字符串类型
s1="3344"
print("fun中3344字符串的指针",id(s1),id(s2))
#>256
int3=257
print("fun中257的指针",id(int3),id(int4))
#浮点类型
f1=256.4
print("fun中256.4的指针",id(f1),id(f2))
#<-5
n1=-6
print("fun中-6的指针",id(n1),id(n2))
fun()
输出结果: