python中的赋值操作

参考:https://www.cnblogs.com/andywenzhi/p/7453374.html?tdsourcetag=s_pcqq_aiomsg(写的蛮好)

python中的赋值操作“=”和C++中的赋值操作"="还是有很大区别的,这点需要注意!

比如例1:

C++和python操作后会得到同样结果,但是两者在PC中的操作其实不同;

 (1)python:代码在内存中的操作示意图:

首先内存会为3创建一个数据单元,再让b指向这个单元;然后b+5得到8,内存又会为这个8创建一个数据单元,再让b指向这个单元(b指向的内存地址发生了改变!);

(2)C++:代码在内存中的操作示意图:

首先内存会创建一个int类,并分配对应的数据单元,类名为b,b类中存储数据3,然后b+3则对b类中的数据3加5变成8(b指向的内存地址没有发生改变!

由上可知:

(1)C++通过操作内存地址而间接操作数据,数据处于被动地位;Python则是直接操控数据,数据处于主动地位,变量只是作为一种引用的关系存在,而不再拥有存储的功能;

(2)可以简单地认为“数据在python中被称为对象(object)”,对象不能被覆盖,也不能被直接销毁(python中有垃圾回收机制来回收不用地对象,比如引用计数机制);

了解了上面,再说一个例子就好理解了,见下面:

这里要注意:对象分为可变对象(单个元素)和不可变对象(集合:list、tuple、dict等),所以会有上面地输出信息;

 

posted @ 2019-03-28 11:52  outthinker  阅读(24180)  评论(2编辑  收藏  举报