python内存判断机制

python内存判断机制

is 判断两个object 在内存里面是不是一个东西

== 判断两个object是不是相等

int x =1  int y =1 那么 x == y,但是他们在内存里面是独立的数据,所以 x is not y 

但是当int x = 1, int x = y时,x is y,因为他们指向同一处内存里面的数据

这是python里面的判断机制


如截图, x  和 y 都指向1,但是python 只在内存里面给1分配了一个固定的内存,所以x is y,这是语言层面的优化。

python内存判断机制

使用tuple的安全之处在于会保证两个tuple不会被分配到一块内存

python内存判断机制

除非你明确指定两个变量指向同一块内存 

python内存判断机制

 而且如果你操作了其中一个变量,修改了tuple值,那么这个修改会导致python给你重新分配一块内存,保存一个全新的tuple,

而不用担心xxx那个变量有什么变化

python内存判断机制

 xxx还指向原来的tuple所在内存位置

而ttt指向一个全新的tuple