交换两个变量的值,Python的这条指令颠覆很多人的三观这是因为大家的三观是学C语言建立的。
在C语言中系统会为每个变量分配内存空间。而在python中Python为每个值分配内存空间。
所以a,b=b,a 这条指令,先是变量a被赋“b值”的地址嘫后变量b被赋“a值”的地址,所以没毛病
可以看出:计算过程中,先是变量a被赋“b值”的地址然后变量b被赋“a值+b值”的地址。
Python这样管悝哲学是值很大又是双精度的话占用的字节数也会很大但是变量只是存储这个值的内存地址。在图像处理节省的内存空间还是很可观的一个变量不须赋予二维数组的全部值,而是赋予二维数组的内存地址但是需要注意的是,变量太多了共同指向一个二维数组会产生混亂应该适当应用命令:a=numpy.copy(b)。
总结:变量并不直接存储值而只是引用一个内存地址。