⼀招知道python变量与C语⾔变量差异
作者最近⼀直在纠结python变量是如何去定义的,看了⼏个帖⼦才恍然⼤悟,虽然python是基于C语⾔来编写,但是在变量定义的是有很⼤出⼊的。下⾯在介绍python变量与C变量的差异:
当给变量赋值时,系统会为这个值分配内存空间,然后让这个变量指向这个值;当改变变量的值时,系统会为这个新的值分配另⼀个内存空间,然后还是让这个变量指向这个新值。
也就是说,C语⾔中变量变的是内存空间中的值,不变的是地址;⽽在Python中,变量变的是地址,不变的是内存空间中的值。
编程先学c语言还是python例如:
同时,如果没有任何变量指向内存空间的某个值,这个值称为垃圾数据,系统会⾃动将其删除,回收它占⽤的内存空间。
例如上⾯的变量x在指向3.14后,数值12就变成了垃圾数据。也可以使⽤del 命令 删除变量,但是删除之后就不能再使⽤了。否则会报错:变量没有定义。
另外,我们可以使⽤python的id()函数来查看变量的内存地址。
我们看到,当a,b都是2.0时,它们的地址不⼀样,说明系统为a,b分配了不同的内存空间。但是,当a,b都是2时,它们的地址是⼀样的,怎么回事呢?这是因为,为了提⾼内存空间的利⽤效率,对于⼀些⽐较⼩的整型变量(int)使⽤了相同的内存空间。如果数值⽐较⼤,地址就不⼀样了。例如: