1,对于python中一切皆对象理解
python中,一切都是对象,这句话很直接了当的表达出了python中一切都是对象的事实,但是,对于为什么一切都是对象,还是有很多人是不明白的。
在这里,我简单的告诉大家,在Python中,所声明的一切左值(变量),该变量在内存中的位置中所存储的都不是它的值,而是该变量值的地址,即,python中变量和值的存储是分离的。
了解了这一点,我在这里给一个简单的变量的例子。
我们先声明了a,b,c,d四个变量,之后用==和is判断a和b的值,a和b的引用是否相等,其结果在右边已经显示,原因是什么,我在下面告诉大家。
在这里,比较标准的说法是:python中变量都有三要素,就是
id:唯一标识一个对象
Type:标识对象的类型
Value:对象的值
但在我这里,我认为,这样很局限,不足以体现python中一切皆对象的理念。实际上,上面三句话反应的是这样一种理念,就是:
Python每个变量的id是标识唯一的一个对象的,value是标识变量的值的,这样会对我们对python皆对象的一个宏观的理解造成很大的干扰。
如下面二图:、
可以看到的是,变量a,b,c,d,str1,str2,str3,str4在内存中存放的值都不是我们预想的,而是一个很长的数字,这一串长的数字其实是真实变量在内存中的位置,即,变量和值是分开存放的,这也是指针的思想,变量存放的是真实数值在内存中的地址。
后续补充。。。。。