好久没玩python了
首先
没记错的话应该是python在解释器中为了一些效率
将一些比较小的可能常用到数字已经在内存中分配好了
比如我的IDLE的范围是-5到256
这样, 每次有变量引用这些值的时候, 就提高了效率
但一旦超过这些值, 还是需要重新分配空间的
其次, 这个解释只是比较初步, 本质问题是你在解释器里运行和在脚本里是不一样的
python变量是引用
比如你在pycharm的终端里用解释器, 一样是符合我上面提到的规律,
2个名字不同的变量都指向了解释器已经分配好了的内存空间(255)
一旦超过, 即便数字相同(555), 他们在内存上的位置是不同的, 有各自的空间
以脚本方式运行程序就不一样了
比如
a = 555
是分配一块值为555的内存空间, a指向他
b = 555
b也指向这块空间, 接下来让b = 其他的, 会改变b指向的空间
这是python基础吧...
不过, 你继续学习下去会遇到列表这种情况
a = [1, 2, 3]
b = [1, 2, 3]
a is b就是false了
这里可以解释为, 如果是列表, a和b还是指向同一个空间, 你不小心修改了b列表中的值, 那么a列表的值也变了
但数字不一样, 如果你修改b = 666
是让b重新指向了一个值为666的空间
总之, 联系到内存空间分配来思考就清晰得多
这跟C/C++不一样, C/C++是每次赋值,都要申请内存