一提到Python总会有人告诉你,Python是面向对象的语言。
当你疑惑道:什么是对象呢?
会有人说:Python中一切皆为对象。
小小的脑袋里充满了问号/(ㄒoㄒ)/~~,今天我们就来讲一讲对象和变量。
正是向大家介绍这两位前,请容我先介绍一点知识前提:
1.程序运行当中,所有的数据都是存储到内存当中然后再运行的
2.数据处理过程:硬盘——内存条——CPU,所以内存越大存储越多调动越少,处理越快
什么是对象?
在内存里每个数据都会有专门的区域,每一个区域都是一个对象
对象有嘛用呢?
对象实际上就是一个容器,专门用来存储数据。
我们学习的数值、字符串、布尔值、None都是对象。
对象的结构是什么(长什么样啊)?
每个对象中都要保存三种数据
Id:标识。
对象是容器,容器长的一样怎么区分(保持对象的唯一性),就是靠标识。
通过id函数来查看对象的id,Id()。
这三个>>>是进入CMD后输入Python后即可进入(你得提前安好Python)。
id是由解析器生成,在我们的python中,id就是对象的内存地址,对象一旦创建则它的id永远不能再改变。
Type:类型。
用来表示当前对象所属的类型。
比如str in float bool .......
类型决定了对象有哪些功能,int可以计算,字符串可以拼串等等
Python中对象一旦创建,类型也不可改变。
Value:值。
对象中存储的具体数据。
值,有些对象可以改变,有些不可以改变。分为可变对象和不可变对象。
可变对象:值可以改变。
不可变对象:值不可改变,例如:字符串、整型、浮点型,之前学的都是不可变的,1 2 3是客观存在的无法改变(True False 等等)。
变量?和对象有嘛关系?
A=3
这是我们常写的一种代码,3是一个对象,A就是一个变量。
变量A如何存储的呢?
对象其实并没有直接存储到变量中。在Python中变量更像对象的一个别名。
直接操作圈住的部分不太好操作,现在把它命名为A,直接操作A方便很多,所以说别名。
我们前面讲到,对象有三部分,ID、TYPE、VALUE,变量把这些都存储起来吗?
变量中存储的不是对象的值(value),而是对象的id(标识即内存地址),使用时其实就在通过标识进行查找。
实际证明一下:
a=123
首先创建123,在内存中创建对象对其进行存储
其次在内存中创建一个对象存储变量名与变量对应的值的id
最后通过地址匹配到对象的值
当b=a时
b会把a的id号复制到自己哪里,其实也就索引了123
这也证明了赋值的是标识号(id)
这个时候我仅仅改变a的值,b会发生改变吗?
此时,创建456对象,然后把自己的标识号给到a
因为此时没有给b进行重新赋值所以b不会改变。
我们可以看到仅有a的标识改变,b不受影响。
变量中保存的对象只有在为变量重新赋值时才会改变。
变量和变量之间是相互独立的,修改一个变量不会影响另一个。