python里面为什么shell和保存文件运行结果不一样?
对于该问题shell与py文件的输出结果不一致,shell为False,.py为True
v1 = 257
v2 = 257
a = v1 is v2
print(a)
思考:
-
按道理说v1和v2虽然为同一个值但其开辟的内存是不同的(此处还涉及一个“小数据池”的概念:对于整型-5~256.以及常见的字符串python不再开辟新的内存。所以对于这些数据其可以指向同一内存,当是这些数据时其输出结果为True),is本身就是比较内存是否相同的,所以输出的结果理应为False
-
那么shell与.py的结果为什么不一致?(个人见解)
- 在.py文件中相对于shell中的每新增一个变量都会新增一个对象,py文件可以在一定程度上扩展小数据池的范围,就int而言大概在十几位数就会出现改变,字符型包括罕见符号在内的试了七八十位没找到变化