00:00
呢,我们介绍了对象啊,也画这么一个简单的示意图来说了一下,这个这个这个对象,那接下来呢,呃,其实你可想而知,我这个图画的太简单了,对象的真实情况肯定不是这样的,你你你这么整完了,这个对象真像一个塑料袋了,对吧?这塑料袋往里装东西,真实情况实际上比这个要复杂一些,那要复杂一些,所以接下来我们要研究的是我们这个对象的一个结构啊,对象的一个结构,对象的结构啊,所以注意对象没有刚才我画那么简单,那对象结构什么呢?哎,我们来说一下每个对象,刚才说了啊,对象就是内存,就是一个容器,专门用来存储数据啊,存储数据我们说每个对象诶都要分三种,诶,每个对象中诶都要保存三种数据,诶,保存三种数据啊,三种数据,哪三种数据我们。
01:00
那第一个我们来列一下,第一个我们叫做ID,第二个我们叫做一个tap啊,叫做一个tap,第三个我们叫做一个value啊,这三种数据啊,三种数据我们一个一个来说,先说idd什么意思,叫做一个标识啊,这一个标识什么意思呀,什么意思看着了,我们现在我这个内存当中,我现在这儿有四个对象,对吧?我现在这有四个对象好了,那这四个对象他们现在这玩意儿我怎么区分呀。四个对象,现在你如果不看里边直的话,他是不是长得一个模样,哎,长得一个模样就跟四胞胎一样是吧,长得是一模一样,但是他们是不是一个对象,哎,不是一个对象啊,不是一个对象,那所以这个时候我就要区分出每一个跟对象,跟每一个对象他们有哪些不同啊,有哪些不同之处,就像人一样,对吧?人有四胞胎,有三胞胎,有两双胞胎对吧?那我双胞胎长得一样,性别也一样,所有东西都一样,那我怎么去区分这个双胞胎,哎,那我们说双胞胎他是不是有这个,我们每一个人是不是都有这个身份证号啊,诶每一个人的身份证号是不一样的,即使双胞胎它也是有不同的身份证号的,那我通过这个身份证号是不是就可以来标识不同的人呀,那这个身份证号实际上就是我们人的ID啊,人的ID,那对象的ID呢?哎,就是这ID是吧?标识ID用来干嘛,ID用。
02:34
来哎,标识哎,我们这个对象的一个唯一性啊,ID用来标识我们这个对象的唯一性,每一个对象,每一个对象都有唯一的一个ID啊,都有idd就相当于什么呢?哎,相对象的ID就相当于我们这个人的这个身份证号一样,身份证号一样啊注意了,对象的ID就和我们这个人的身份证号是一样一样的,都是用来标识的,它它的这个唯一性的啊,唯一性的,所以这里边我们如果要真的去展开的说这个对象结构的话啊,对象的结构啊,先给它去掉啊,去掉这里边呢,我把这个我复制一下吧,复制一下啊,我这个值呢,我就留一个123这些呢。
03:34
都给它删掉删掉删掉删掉就有一个123,那现在我123这个值在我的内存里边是怎么保存的呢?哎,那它有第一个部分,第一个部分就是一个什么呀?I Di啊,第一个部分就是I did是它一个唯一的一个标识啊,标识它的一个唯一性好,那问题来了,那123的ID我怎么看呀。
04:02
对吧,我怎么去看123的ID啊,哎,那这里边注意我们可以通过我们这个ID这个函数来查看我们这个对象的一个ID啊,通过这个函数来查看我们这个对象的ID这块我稍微的格式化一下啊来那看我们来怎么看啊,怎么看来在这儿我直接演示吧,嗯,打开我们这个Python的一个这个交互模式啊交互模式现在我这来一个A等于123,或者直接写吧,诶我直接来一个ID,来一个123啊,直接来一个ID123,那现在表示什么意思,就是去查看123的ID,我这一执行走一个是不是就是1707338416啊是手了不关键我们再看一个124走是不是又变了一个,再来一个一,哎都不用看了啊,这个ID都是不重复的啊,所以注意每一个对象都有它唯一的ID,所以在对象里边啊,这黄的在这就表示一个对象,对象里边第一个数据。
05:02
对,叫做一个I did在这我随便写一个啊,随便写一个,比如说我就写一个123啊,随便写一个,但是注意这个D是唯一的啊,这个ID是唯一的,那问题又来了,同学问老师,那这ID是哪来的呀?怎么就办变出这么一个ID呀,哎,那注意了,ID是由ID是由我们这个解析器什么呀?哎,生成的啊,由我们解析器生成的,而在我们这个c Python中,C Python中啊,就是我们用这个Python,诶ID就是我们这个对象的一个内存地址啊,所以注意在我们这个c pthon中,像我们这儿,我这时候查看123的ID啊,这个ID就是它在我们内存当中的内存地址啊内存地址好,这是我们对象结构当中的第一个步骤,就是这个ID啊,ID第二一个我们叫做一个tap type什么意思呢?Tap我们来说一下,Tap表示的是一个叫做类型,叫做一个。
06:02
类型,什么是类型啊,像我们人是吧,这个世界上生物丰富多彩,哎,不管生物各种东西吧,人。狗猪牛羊猫是吧?还有什么自行车,游戏机,有这个这个这个汽车哎等等各种各样,我们有各种各样的东西,对吧?但是比如说人狗猪这玩意儿一样吗?啊很明显他们是不同的物种对吧?我们人跟自行车也不一样,他们都属于不同的物种,那类型是干嘛的?哎,类型用来表示什么呀?诶类型哎用来表示我们当前哎对象,诶所属的类型,诶所属类型比如什么呀?哎比如说你可以是,你可以是,比如可以是int,哎你可以是什么呀?String你可以是什么呀?Float你可以是这个不值等等等等,你是不是可以是这些类型啊?哎,所以注意诶类型用来标识我们当前对象所属的类型,来告诉你是什么类型的啊,什么类型的,所以注意在我们这个对象里边,第二个值就是一个type type来标。
07:13
是它的一个类型,像我们这123,它是一个int类型,所以在这儿我们简单写了,它就是一个int,但是实际上更复杂一点,它应该是一个class in的,刚才我们看到这个值它应该显示的跟它是一样的,应该是这个class in的,它里边存的实际上是一个class,咱们可以写上对吧,可以写上,但是这无所谓啊,Class in的,这是我们的一个类型,类型有什么用啊,类型有什么用?类型决定了我们这个对象有哪些功能,哎,对象有哪些功能,比如说还是拿我们现实生活举例子,你是人,那你的类型就是人,人有什么功能,吃喝拉撒睡走,诶这个犯傻,人有的功能你全都有,因为你是人,只要你是人,你就会具备这些人类的最基本功能,对吧?那你不是人,你说你是自行车,自行车,那自行车的功能就是被人骑,对吧?它不能,它不能飞对吧?它不能飞,他就只能被人骑,那你自行车你是属于自行车,那你就可以被人骑,懂这意思吧,所以类型决定了对象有哪些功能,同样你这块是个number number类型是个in的类型,整形,哎整形我可以计算是字符串,字符串我可以去拼串别的类型,别的类型可以做调用什么方法,做各种各样操作,类型决定了你有哪些功能啊,类型决定了你有哪些功能好,这也是我们说的一个它。
08:41
呃,这是ID,还有这个类型,然后呢,咱们这块我们再强调一下ID和类型ID注意对象一旦创建,一旦创建则。他的这个什么呀?哎,它的ID,哎永远不能再改变,不能再改变,所以注意啊,只要这个对象一创建好了,比如说123这个对象创建好了它的ID,我这ID写重了啊,ID跟只写一样了,我这面换一换一种写法,我写一个0X11啊,我写16进制啊内存地址嘛,对吧,那现在只要这个ID1创建,对象一创建,这ID就定了,哎这ID就已经定了,永远就不会改变了,就相当于说人是吧,人你死了,然后你你就投胎了是吧,你投胎当皇上了,OK,那你这辈子就是皇上了,哎,你说你投胎当乞丐了,OK,你这辈子就是乞丐,你投胎当一个美女,那你这辈子就是这美女了,只要你一变成对象,你投胎了,你一辈子就是他,你变不过来了,除非你死了,下辈再投胎对吧?对象也是一样,123,你跟对象一旦创建了你的地址是0X111了,那你永远都是02111,这个东西永远都改不了。这是你生。
10:00
工具来的东西一辈子都变不了啊,一辈子都变不了,这就是每一个东西啊,这是我们第一个说的一个ID,然后第二个是一个类型,叫做一个type type,我们这来说一下type,再强调一下我们的Python啊,Python是一门叫做强类型语言。哎,强类型的这个语言,我们说了对象的类型,对象一旦创建,哎,类型便不能修改,变不能修改,诶同样你生下来是人啊,对不起,这辈子就是人了,你说想变个狗吧,变不了,你生下这狗,你说想变个人吧,也变不了,生下来是什么就是什么,同样对象也一样,你创建完了是整形,OK,就是整形了,是字符串就是字符串是不尔值就是字符不尔值,一辈子都变不了了啊,所以注意ID和type一旦确定就无法改变啊,ID和type一定一旦确定就无法改变啊好,接下来说我们最后一个叫做一个value value是我们叫做一个值,值是什么玩意儿?哎,刚才说了,对象是专门用来存储数据的区域标识有了,类型有了,那你存的数据是什么对吧?哎,存的数据什么?所以值是什么?
11:20
值就是我们对象中存储的具体的什么呀,数据啊,自己数据,比如说什么呀啊,比如说你是你这个123,你对象里存的就是123,你是456,你存就是456,所以像我们这个对象它的Y6是谁呢?哎,Y6就是123啊Y6就是123,因为我这值是不是就是123呀,哎,值就是123,那再比如说我这有一个有一个这个hello,我有这么一个hello这个对象那在那存里怎么存啊,我复制一下啊,那首先有hello这对象了,我是不是要给他分配一个内存地址啊,哎,内存地址那就不能跟他一样了,对吧,改一个211,对这改一个啊,然后类型它就不能是int了吧,它就得是STLS它的VALUE6什么呀啊,它的VALUE6就是一个哈,啊就是一个哈,你存的什么就是什么,对吧,所以Y6就是你那个具体的这个值啊,具体值,所以当我们去打印123打印字符串的时候,实际上我们看到的是什么呀,实际上看到的是不是就是它那值啊,哎,就。
12:20
就看到它这值啊,但这个ID和type我们必须得通过函数,哎,通过ID函数或者通过typeb函数去查看,而且值我们一般都能直接去看到啊,当然这正好再补充一下,哎,我们这来说一下啊,怎么查看类型是吧?哎,我们通过这个typeb函数,Typeb函数来查看我们这个对象的一个类型啊类型好,那这个就是我们说的我们这个对象的三个组成部分,ID typeb,还有值,那值再来说一下,刚才说了ID typeb都是不可变的,那值可不可变的?哎,值是可变的,哎,对于有些对象。
13:06
哎,值是可以改变,哎,可以改变的,那这么说来有些对象还是不能变的,对吧?哎,的确如此啊,那我们这块来说,我们对象分成两种对象,我们可以分成两大类,两大类一个叫做可变对象,还有一个叫做不可变对象啊不可变对象,那可变对象的值可以改变啊,可变对象的值可以改变,而我们这个不可变对象的值,哎,不能改变啊,所以注意在这儿就是用这个对象的值来区分的,可变对象的值可以改变,不可变象值不能改变,就这么简单做一个这个区分,那可变对象我们还没学呢,哎,我们之前啊,我们之前学习的这个对象,哎,都是不可变对象,我们之前学什么呀,数字对吧,整形幅。
14:07
点数布尔值数字是吧,然后这个自由传,哎,还有这个这个。那这些都是不可变对象啊,都是不可对象,也就是说123这玩意儿,你是永远都没有办法变的,你这来一个123 123是改变不了的。所以注意啊,值这块是有区别的,可变对象能变,不可变对象就不能变,现在可变对象我们还没学呢,我们学到的时候,我们再去强调,现在你先记住了,我们所学的这些对象都是不可变对象,比如说我这123 123就是一个什么呀,不可变对象,它的值永远不能改变,一也是一样,一也是一个不可变的项,只要是这个数字都是不可变的,其实也很好理解,为什么不可变呀,那我们说一下,像这种12345这种东西是不是就是客观存在的一个东西啊?哎,那什么叫不可变,你说我就变一个,我把一变成三行不行啊?当然不行了,你想想你把一变成三,那也就是是不是意味着我们就没有一了,你没有一了,你想想,你生活中没有一你你你可能整个世世界都崩溃了,对吧?没有一这事儿太可怕了,所以这些123这些东西它都是不可变的,你改不了他们啊,所以注意not true false,自符串,123这些东西都是不可变对象。
15:25
啊,一旦创建了这东西都不可变,所以话又说回来了,像我们之前学的对象123也好,Hello也好,这里边这三个玩意儿干嘛?哎,都不能变,ID也好,TB也好,歪了也好,都不能变,那以后会说到有歪的能变的,我们再去说它,现在你先记住了啊,那你先记住了,好,这里我们说的是一个这个对象的一个这个结构啊,对象一个结构,然后呢,哎,留一个小的练习啊,小的练习。把它练习干嘛呢?诶尝试哎自己画一下,哎,我们这个对象的一个内存结构啊,尝试自己画一下对象的一个内存结构,把这结构先梳理一下,你现在有可能不太理解,不太理解没关系,先画一下,我们随着往后深入,随着我们再去深入理解,但是现在必须得画啊,必须得做好,我们来停一下。
我来说两句