00:00
接下来我们继续来说啊,刚才讲了一下对象的结构,那你要注意了,对象里边是分了三个部分啊,ID type,还有value啊,把这个东西一定要搞清楚,然后还有一点啊,我在这个LESSON02里边创建了文件夹,叫做imgmg图片啊,我把图一图二这是我截的图放在里边了,就是说呃,你可以根据我们这个呃图来看一下啊,我待会儿找图的时候上这儿找一下就OK了啊好,那接下来往下我们继续来说,刚才我们说了对象了,对象说完了以后,其实我们这个图里边有一个东西,其实我没有体现出来了,因为我们现在只写了值,但是实际上往往的情况,我们这除了值以外,我们应该还有一个什么东西啊?哎,我们是不是应该还有一个变量啊,应该是A等于123,或者是A等于哈,还需要有一个变量,所以接下来我们再来整理一下什么呢?哎,说一下我们这个哎变量,哎和我们这个对象的一个关系。
01:00
啊,变量和对象的一个关系,哎,那变量和对象有什么关系呢?那现在我们来看一下,那之前我们来说,我这写了一个,还是在这来说吧,我写一个这个A等于三,那我问你了,A等于三这个是什么意思呀?哎,我是不是把三这个值存储到了A这个变量中呢?哎,注意一定注意不是的,那你现在如果之前你还这么以为,现在一定不能这么以为了,为什么呀?因为我们说了三,你看上去它只有一个三,但是实际上在内存里边是不是也是一个完整的区域啊,哎,完整的区域,所以它不仅仅是一个三,实际上它是一个对象,那我们的变量又是如何去存储这个对象呢?那注意了,我们来说一下,呃,实际上我们的对象,哎,并没有,哎直接存储到我们这什么呢?哎,存储到这个变量中啊,对象并没有直接存储到变量中。
02:00
而什么呢?哎,在我们这个Python中,哎,Python中我们这个变量它它其实不像变量啊,它不像变量,它更像是什么呢?哎,更像是我们这个对象的一个别名,这更像是给我们这个对象,哎起了一个别名,哎起了一个别名什么意思呀?就是相当于你现在来看我这对象,我要想直接去操作这个对象,我去操作的时候,这样实际上是不太好好办的,那我这来一个A等于123相当于什么呢?相当于给这块区域起了这个名儿,这块区域叫什么了,诶叫A了,那以后我再去找这个A,想去找这个对象,我就可以直接通过A去找了,就这么一个东西啊,所以注意在Python中,其实这个变量它不像变量,更像一个别名啊,更像一个对象别名,所以之前我们看到我们这个在这儿来写一下,如果我用一个没有定义过的变量,比如说我来一个B没有定义过的这个变量,这一执行它会给你报错,叫做。
03:00
Name error,哎,他并没有说是变量错误,他说名字错误啊,Name error name b is not DeFine,他说B是一个name,并没有说B是一个variable,是一个变量,哎,所以注意啊,在我们Python里这个变量它更像是一个名啊,更像一个名,那我们来说变量里边存的是什么呢?哎,变量Python中变量更像是给对象起了一个别名,那这块我们还是来画图来演示一下,这来复制一下,那现在呢,我把这还是简化一点,这个东西呢,我先给它去掉,然后呢,我这代码啊换了。换成这个A等于123啊,A等于123来,我把这个呢往里挪挪,或者干脆我们现在把它也去掉啊,把它也去掉好,那现在我这儿有了一个A等于123,这又变了,这里边是不是多了一个变量A啊,那既然有东西,有东西是不是也得需要存到内存里啊,哎,所以注意实际上变量也是存到内存里的,我们现暂且先这么认为,在我们内存里边会有一个专门的区域,这个区域干嘛呢?这个区域专门用来存储我们的变量,哎,我这块画一个绿色区域,这个区域专门用来存储我们变量,这个东西它像一个表格似的,表格似的,诶,它分两列,为什么两列呢?一列是我们的这个变量,还有一列是我们的值啊,一列是我们的值,当然我这儿写了一个A等于123以后,那它会干嘛?那首先这是不是出现了一个123呀,哎,一定注意有这玩意儿,肯定它一定是先执行右边再执行左边的所。
04:34
对,在这块我需要先创建123这个对象在内存当中,所以我就粘过来,还是一个对象里边有什么呀,ID tap,还有Y了,123这个对象我们是不是创建好了,好,那在这接下来再处理变量,变量A有了,那我这里边就需要在变量这个区域创建一个变量,变量的名字叫A啊,变量名叫A,那现在问题来了,变量在这儿,而对象在这里,他们两个之间有没有个联系啊,没有联系,你就说现在是没有关系的,那我要想体现出这个变量和123的联系,我是不是得在变量里边来跟他建立起关系啊,怎么建立关系啊?哎,其实非常简单,我只需要在,我只需要在变量里存一个东西就行,存一个什么,存一个这个对象唯一的东西,也就是它的什么呀,内存地址,也就是它的一个ID,我只需要,也就是说这个A这个等于123,它里边存的并不是123这个值,而。
05:34
这123这个对象的一个内存地址,现在就相当于我A里边有一个这个什么呀,诶类似于指针这么一个东西,指向了这个对象啊,指向了这个对象,哎,那现在就是这样一个关系啊,就这样一个关系,所以注意我们这块还是写一下,哎,我们这个变量中。哎,这块我们要说一下,我们这个变量中存储的,它不是我们这个对象的值,哎变量中哎存储的哎它不是我们这个对象的值,而是我们这个对象的什么呀?哎这个ID的标识也就是一个内存地址啊内存地址当哎我们使用变量,哎使用变量时,实际上哎就是在通过什么呀?哎它的这个对象的ID,哎在查找对象啊查找对象这一点时刻要记住在变量里有没有存东西,也存东西了,存的是什么?存的是这个对象的地址,存的是对象的ID,当我写这个A,当我去用这个A的时候,因为它里边存的是不是地址啊,这个地址是唯一的,我们的这个解析器就可以根据这个地址找到。
06:57
对象啊,就可以根据地址找对象,也就是说现在我来一个A等于123,在A里边实际上存的是一个0X111,然后当我们去打印A解析析一看啊,打印A,我刚才看A里边存的是什么呀,存的是0X111,然后再往下再找找什么?哎,我就会通过这个地址找到这个对象啊,所以注意时刻注意我们的变量里存的是对象的ID,不是对象的值啊,存的是对象的ID,好,那接下来我们再看啊,我们再看,我这来写一个,我这来写一个,再来一个B等于A,哎,我再来写一个B等于,这个时候我让B的值等于AB,那这时候实验室在干嘛?哎,那首先有B了,有A了,对吧,AB已经有了,那然后是不是我就要再整一个新的变量B呀,哎,新的变量B等于AB等于A是干嘛?是等于A的值,A的值是什么?A的值是不是就是这个内存地址啊?所以现在我让B等于A,以后B的内存地址也是。
07:57
X111,他也会去指向谁啊,诶指向我们这个对象,也就是说现在A和B他们指向的是同一个对象啊,同一个对象我们可以看一下啊,可以看一下刚才我给关上了啊,再打开一下,打开我们这个Python的交互模式啊,我这来一个A等于一个十,A等于个十。
08:20
然后呢,我们来看一下啊,看一下ID这个A,我们来看一下A的内存地址,呃,这个括号写错了啊,ID我们这是一个小写的一个括号啊,这个中英文的括号,ID一个ID一个A直行,哎,这是不是A的ID啊,然后再来我来什么呢?B等于A啊,B等于A,然后在这我们打印一下BB的值是不是也是十啊好,我们再看一下ID这个B,你会发现IDB跟这个ID它们的值是一样的,因为他们现在指向的是同一块地址啊,同一块地址,所以现在BA就跟A指向的同一块地址啊好,那现在我们来看啊,看我做这么一件事,我来什么呢?我来一个A等于456 a等于456,那现在我要问的是,我这块做了一个A等于456,它会不会对B产生影响?
09:16
诶,很明显这是不会的啊,因为我来了一个A等于456 456是不是一个新的对象啊,等于说我要在内存当中创建一个新的对象,这个对象的地址是什么,咱也不知道,反正肯肯定还不一样了,假设我就写一个0X21,类型还是int,这个时候值变成了,变成了456啊,变成456,变成456以后,然后注意A现在是456,也就说A这块的地址还是不是111了,就不是了,就是211了,然后这个时候这个箭头还是不是指向原来123了,哎,不是,它就应该变成谁了,变成我们这个新的对象啊新的对象了,好,那这个时候我问你了,这个B会不会受影响。哎,不会受影响啊,这个时候B它是不会受影响的,为什么?因为我在这儿是给A进行重新赋值,有没有影响B啊,没有影响BB,还是指向的事原来那个,所以这个演示起来也非常简单,现在我们来看,哎,A是十,然后B也是十,我来一个A等于20,改变了A的值,咱们再打印一下,AA是20,我看BB是不是还是十,诶对B没有产生任何影响啊,所以注意我们来说一下变量,变量中,哎保存的这个对象。
10:38
哎,只有在重新赋值时哎,才会改变啊,只有在为在为啊为我们这个变量重新赋值时才会改变,这句话什么意思?现在我这有一个变量A,变量A是等于20对吧?等于20,也就是说一旦你给它设置成了A等于20,它基本上是不会变的,除非什么时候会变。
11:09
你写了一个A等于30,你给变量重新赋值了,这个时候它才会改变啊,你不重新赋值,它永远都不会变啊,所以这1.1定要注意,变量中的保存的对象只有在为变量重新赋值时才会改变啊,注意啊,这句话我们就省事了,因为我们这应该严格来说是变量中保存的是对象的这个地址,对象的ID啊,对象的ID这块就省事了啊,哎,在只有在为变量重新赋值时才会改变,然后注意我们变量和变量之间是相互独立的,相互独立的啊,变量和变量之间是相互独立的,修改一个变量它不会影响什么呀,哎,不会影响另一个。不会影响另一个啊,你改A对B没有产生任何影响啊,改A对B不会产生任何影响,好这个就是我们说的一个变量和对象,待会儿把这图也截下来,这是我们这个图三,一定注意变量里边存的是内存地址,并且变量之间是相互独立的,修改一个不会影响另一个啊,并且变量只有在重新赋值的时候才会改变啊,才会改变,好我们还是来听一下。
我来说两句