首先罗列几个小要点:
Python中查看引用的地址:
id(引用)
Python中将字符串转换成整形:
int(字符串)
Python中将整形转变为字符串:
bytes(整形)
然后,做了这么一件事情:
这是一个*.py,即python源文件
a=100
b=200
c=200
d=300
e=d-a
print "&a:"+bytes(id(a))
print "&b:"+bytes(id(b))
print "&c:"+bytes(id(c))
print "&d:"+bytes(id(d))
print "&e:"+bytes(id(e))
然后shell运行:
[xxxx@localhost ~]$ python pythonFiles/abcde.py
&a:154260980
&b:154261756
&c:154261756
&d:154445764
&e:154261756
是不是很奇妙,只要是引用关联的值是相等的,那么它们的地址就是相同的。
同样,如果
a=100
a+=50;
如果在c、java、c++中,一定是统一个整形地址上的数值被修改了。貌似在这些语言里地址的改变之出现在再一次赋值语句或者指针修改的时候。
但是在python中,数值被修改了,引用的所指向的地址就变了。
作为一个初学者,觉得好奇妙阿。难道这样写的程序更节省内存。
如果是这样,那以后那种 类稀疏矩阵是不是在python里面等价于自动压缩了呢,这太棒了!(这里纯属初学者的YY,老鸟勿喷)