00:00
好,刚刚我们介绍了一下面向对象的一个思想,接下来呢,我们来进入到我们下一个概念,我们叫做一个类,诶叫一个类,呃,类我们叫做一个class啊,Class或者说类型,我们叫type,哎,都行啊,都行,意思差不多啊意差不多,我们来说一下这个类,那什么叫类呀?刚才我们在举例子的时候,对吧,我们说了,哎,你需要用儿子你就找儿子对象,需要用妈妈就找妈妈对象,需要用什么就找什么对象。但是其实当我说这句话的时候,其实会有同学有疑问了,哪有儿子对象啊?哪有妈妈对象啊?我们半天学的对象不就是数字字符串不尔值,那什么这个序列字典,我们学半天不就是这些对象吗?哪有什么妈妈对象,儿子对象啊,你说的什么找对象,我一共就这么几个对象,我找谁呀?哎,对,所以这里边注意了,我们现在所学的对象都是什么?哎,我们我们写,一边写一边说啊,我们目前所学习的对象都是什么呢?哎,都是我们这个Python内置的这个对象,也就是说这些对象都是我们Python给我们提供好的,那具体来讲,咱们来打开一下我们这个Python的官网,我们来看一下文档。
01:25
这些对象呢,在文档里我们都是可以直接看见的啊,Library reference叫做一个building types,你直接一点开,那这些就是我们Python的什么呀,内建的类型,它这块我们直接看这吧,往回找。哎,那你其实你在这儿可以看到是吧,他给你提供了哪些类型,往回返回一个啊,他这儿我现在这个有点小问题是吧,回不去了,直接在这看吧,也就说我们看到这些类型像什么数字是吧?In float呀,Complex啊这复数对吧,包括什么各种各样的。
02:01
这块。这都是说的是float的是吧,这些都是数字啊,往下当然还有一些这是序列对吧?哎什么这个通用的序列的类型不可变的这个list子的,包括往下找什么T,我们这个这个这个元组ranges是吧?这些东西是不是都是我们Python给我们提供的呀,所以这个我们叫做一个什么呀,内置对象啊,内置对象我们都是可以直接拿过来用的,但是我问你了,内置对象能不能满足我们所有的需求,诶注意,但是我们这个内置对象,哎并不能满足我们这个所有的什么呀需求,哎就说什么呀,仅仅有内置对象是不够的啊不够的,所以哎我们在开发中啊,经常干嘛呢?哎,经常需要哎自定义一些什么呢?哎,自定义一些对象啊,自定一些对象,哎,那问题就来了,那我要怎么自定义对象,哎,首先说我们自定义的对象跟那。
03:05
一些,哎,String呀,跟这些这个这个list呀,跟这些函数,这些对象,它没有本质的区别,都属于什么,都属于对象啊,都属于对象,也就是说它都是我们内存当中的一块区域,但是现在问题是,那我们要怎么自定对象,怎么自定对象,那这里边我们就要说到一个什么呢?说到了一个类啊,说一个类,那类是什么啊,类是什么,那我先说一个这个通俗的概念啊,在这儿我们来,诶我们先不写吧,我直接在这儿写,像什么呢?我们来说一下类。类咱们类啊,简单来讲啊,类简单理解,哎,它就什么呢?哎,它就相当于一个这个图纸啊图纸,那之前我们说过了,我们说了我们的对象是不是就像一个盒子呀,哎,对象就像一个盒子,像一个容器,那你现在要创建对象,你这盒子是方的,是圆的,这盒子里是有两个格,有三格,有十个格,那这个东西根据什么决定啊,根据什么决定啊,那你要创造这个盒子,你是不是得有一个图纸啊,而这个类就相当于是一个什么呢?图纸啊图纸,所以说什么呢?类简单理解,它就相当于什么呀,图纸在什么呢?在我们的这个程序中,我们什么呢?我们需要根据我们这个类来干嘛呢?来创建我们这个对象,哎举个例子,哎,我们都以前就是可能都看过一点这个西方的故事是吧,说圣经里上帝造人,上帝怎么造人的呀,哎,上帝是根据。
04:38
自己的样子是不是去造人呀,那上帝的样子是不是就相当于是一个图纸,他根据自己的样子造,造出了一个人,而这个人就相当于什么,相当于是一个什么呀,是一个对象,所以类你就把它理解成什么呀,图纸,我们根据这个图纸来创建什么呀,来创建对象,所以呢,类呀,就是我们这个对象的什么呀?哎,就是我们这个对象的纸,哎,就是对象的图纸,对象的一个图纸啊,我们要根据类来创建对象,这个好理解吧,诶像一个模型是吧,像我们盖房,我们根据图纸去去盖一个房子,我们根据图纸去产生一个商品,我们根据类去产生一个什么呢?生产一个对象啊,生产一个对象,那所以这里边注意我们的什么呀?哎,我们通过类去创建对象,那我们也什么呢?我们称我们说什么呢?哎,我们也称我们这个类。
05:38
啊,这个对象对象是什么呢?是我们这个类的实例啊,是类的一个实例,实例啊实际的实例子的例啊,称对象是类的实例,实类的英文叫做instance in叫做一个instance啊,我们也称这个对象是类的实例,那么说了,诶如果什么呢?如果我们这个多个对象,哎多个对象是什么呢?是通过一个类创建,诶是通过一个类创建,哎,我们什么呢?我们称这些对象是什么呢?是一类对象啊,是一类对象像什么呀?哎,你这些对象,我这个我这对象都是通过人这个类创建的,那你这些都是属于人类,你这类对象都是通过狗这个类创建的,那你这对象都是什么呀?都属于狗类啊,都属于狗类,那这里我们来举个例子来,那我们有没有学过类啊?
06:37
哎,有没有学过类呀,哎,那其实我们已经学过类了,像什么呢?像我们之前学过什么呀,In它像什么,这个float像什么呀,布尔像什么呀,像什么string像什么这个list,哎像什么D是吧?像等等等等,我就不一个说了啊这些它都是什么呀,这些都是。
07:00
类啊,这些都属于类啊,这些都属于类,那我们有的时候写什么呀,我这来一个A等于什么呀,等于个int,我来一个这个十,那这个是在干嘛?诶这个是创建,创建一个这个int类的实例啊,Int类的一个实例,哎也是创建于什么呀,Int一个对象它等价于什么呢?哎,等价于直接是来一个A等于实,那你说老师那你这些你这些法不是太麻烦了吗?这多简单呀,对,的确这种写法更加的简单,但是它俩是等价的,因为这个值比较特殊,你可以用这种方式写,但是大部分的对象我们都得需要通过这种方式去创建啊,创建,所以注意像int,像float,我们之前说是函数,其实是不标准的正确说法,它们都属于什么,都属于类啊,都属于类,但是这些类你看它们都是小写字母开头,它比较特殊,因为这些都是什么,都是我们Python内置类,它以小写字母。
08:00
开头,而如果我们自己去定义类都要干嘛,都要用大写字母开头啊,都要用大写字母开头,所以这里边注意啊,我们如果什么呢?哎,我们自己定义的类,我们自定义的类都什么呢?哎,都需要使用我们这个大写字母开头啊,字母开头那之前我们说过了,我们Python里的命名方式有两种,哎常用的两种对吧?下划线命令法,单词之间使用下划线隔开,还有一种什么呀,我们说是大驼峰命令法,也就说什么呀,我们使用这个大驼峰命名法,哎还有一个名叫什么呀,叫帕斯卡,哎命名法,哎来干嘛呢?哎,来对我们这个类命名啊,来对我们这个类命名,那就是这么一个东西啊类那说了这么多,那这到底是啥玩意儿啊?哎,咱们不废话了,我们来尝试着去写一下,那这里边啊,我们来先写一个文件,嗯,保存一下啊,我们来这儿新建一个文件夹,叫做一个code来保存我们这个代码,Code里边呢,我们来写一个零一,我们叫做一个这个。
09:00
哎,来一个类的简介点PY,那这里边我们先演示一下啊,先演示一下,我直接来一个A等于一个in,它来一个十,那这边我们刚才说了这是什么呀?哎,这个是刚才写了啊,我把它直接粘过来,这是创建了一个int类的一个实例,那我如果来什么呢?哎,BB等于一个这个str,我这来一个这个hello,这是什么呀?诶这是创建什么呢?诶创建一个这个string类的一个实例啊string类的一个实例,那这时候你直接打印啊,实际上A就是一个数字,我们这个B呢,就是一个什么呀?诶就是一个字符串直接保存走一个是不是10HELLO啊那怎么查看它属于哪个类呢?你可以直接来一个来一个这个type a啊tap a,然后呢,你这来一个这个type b,那这个实际上就是返回什么呀,返回它的这个类的这一执行,你看十是class叫int,哎,Hello class叫什么呀,叫str,你注意它返回的不是function,你看我这是不是像掉一个函数啊,但是。
10:00
它不是函数,它叫做一个什么呀,叫做一个类,人家反应的是一个class和函数很像,但是注意它不是啊,它不是,那这个就是一个int型的对象,这就是一个什么呀?哎,String型的对象啊string型的对象好,那现在我们想了,那我要怎么去自己去定义一个类呀,哎,我们来自己定义一个简单类,我们来定义一个简单的一个类啊简单类那首先要注意了,我们使用什么呢?哎,我们使用这个class关键字,诶来定义类啊,定义类它的语法呢,和这个函数很像啊,注意我说的是很像,但是不是说一样,所以函数我们是不是第一个用DeFine呀,哎,DeFine,而我们的类上来写一个什么呀,写一个class啊class写一个class,表示你在这要创建的是一个类啊,我们先写语法吧,语法class class关键字后边空格跟的是一个什么呀,类名啊,跟的是类名,类名后边跟一括号,你看是跟函数一模一样啊,但是括号里边就没有。
11:00
行参了,括号里写啥我们先不说啊,先不说你这可以简单写一下,括号里写的是负类啊负类,但是我给它套个中号,可以省略不写,叫做一个负类啊,负类我们先写上啊,然号后边紧跟的是一个冒号,冒号后边跟的是什么呢?我们这个代码框啊代码框,所以这个语法跟函数一模一样,除了这个什么呀,关键字不一样,然后里边形参没有了,剩下都一样啊,剩的一样好,那class我们这来写一个类名,类名注意我们要用大驼峰,所以首字母肯定是大写,那我这叫一个my class,那注意怎么是大驼峰啊,首字母大写,然后每一个单词开头字母干嘛呀,大写,剩下全都小写,那MY是一个单词,Class一个单词,所以M大写,C大写,然后后边跟着一个括号,然后冒号这可以跟代码块了,那这里的代码块我先不写,我直接来一个pass啊,来一个pass,那这里就是一个最简单的一个类啊,最简单一个类,那这里我们创建完了,我们这来打印一下啊,直接打印一下我们这个my class。
12:00
啊,直接打印,这直接一执行走一个,你看人家叫什么class,一个闷点麦class,诶man class,那这玩意儿打印这个是什么意思?Class首先表示它是一个什么呀,是一个类,Men呢,诶闷表示我们当前这个文件是我们的主文件,那主文件我们需要说完模块我们再说它,所以你就记住了,我们当前这个文件运行的文件就叫做men啊,就叫闷点my class,你说运行的是主文件里边一个类叫my class啊my class,注意这pass你必须得写,或者你不写pass里边写别的代码了可以,但是现在我没有,你直接写一个pass,那这就定义好一个类,那注意了,这个类就是我们的什么呀,自定义的一个类,诶那同学说了,老师你不是说类是。对象的模图纸,那我们有了类以后,我们是不是可以根据对根据类来创建对象啊,哎,当然可以来,我们来根据什么呢?我们来使用我们这个my class my class干嘛呢?诶,来创建一个对象,怎么创建非常简单,先来个变量,比如说我这叫MC等于什么呢?直接调一下my class加一块,你看着是不是就像调一个函数一样,哎,那注意了,使用什么呢?我们来说一下,使用我们这个类来创建对象就什么呢?哎,就像调用一个函数一样啊,就像调用一个函数一样,你这儿调用完了以后,它就会自动创建一个对象,然后给你返回,返回完了就复制给你一个变量,现在这个MC就是什么?现在这个MC就是my class,怎么?诶,那注意了,我们来说一下,咱们把这句话写这吧。
13:39
MC它就是什么呢?就是通过我们这个麦class创建的这个对象,那我们刚才说了,我也可以说MC是我们这个什么呀?哎,是我们这个麦class的实力,哎的实力,那我们现在来看看,那现在这MC就已经是一个对象了,我们来干嘛呢?哎,我来打印一下MC,我来看看它是不是这样啊,我直接一执行走一个,诶呃,你看是不是object了,哎这就给你改了,叫做一个object,前面打印的是什么?告诉你它是通过这个类创建的对象,它的类型是它你也可以干嘛呢?你也可以通过一个这个tap,然后来一个MC打印一下这个类型,一保存它类型是不是就是class,闷点class呀,诶告诉你是由这个类型所创建的这个对象,那这里我们就成功的通过这个类来创建对象了,那你创建一个,这么创建你创建两个呢,哎,你再调一个来一个什么呀MC。
14:40
MC2等于一个my class mc2等于my class,那又有一个对象,你可以来什么呀?来一个MC,还这MC下划线,这来1MC_三,你也可以来什么呀,MC_四,那现在我就通过MC my class创建几个对象了,创建了四个对象,这四个对象它们都是一类对象,注意啊,是四个对象,它们都属于同一类,哪类都是my class啊my class,所以这里边注意我们来写一下叫什么呢?MCMC2,然后MC3还有MC4,哎什么呀,都是我们这个my class的实例,哎,他们都是一类对象啊,他们都是一类对象,都是一类对象,好,那现在这个对象创建完了,那我怎么能诶,我怎么能检查一下它是不是它的实力呢?哎,它是不是它的实力呢?
15:40
那在这里我们有一个方法啊,一个方法叫做一个is instance啊is instance,那这个方法是干嘛的,这个方法是干嘛的,我们来说一下is instance它用来干嘛的,这是函数啊,这是一个函数。它用来检查一个对象是否是一个类的实例啊,检查一个对象是否是一个类的实例,也就是说那现在我有一个MC,有一个麦class,我想检查MC是不是麦class实例怎么办?那你直接来一个MC,这儿来一个MC,这再来一个这个my class,诶my class,那现在他的意思就是检查MC是不是my class实例,如果是会返回true,不是会返回force,我们直接来一个t result,等于然后在这我把它注了,我打印一下这个result,然后这来一个re result,等于我这来一个这个result保存一下,走一个什么玩意儿true,也就是说MC是麦克达实力,那mcr呢,MC2呢,这一保存一执行是不是也是true啊,哎,都是麦克达实力,那这我换一个str,这是什么?检查mcr是不是str的实力吧,我这一执行什么玩意儿,哎,Force它为什么F,因为它不是它的一个实力啊,所以注意。
16:57
我们可以用instance来检查一个对象是否是一个类的一个实例啊,一个类的实例,那这个是我们创建对象的一个最简单的方式啊,当然我们最终肯定不是用这最这是最简写的方式,最终我们不可能只写一些pass,我们这边还有别的代码,但是先体会一下这个类的作用啊,通过类我们可以创建我们自己的对象,对象里想有什么,你可以指定什么,但是现在它是一个空对象,也就是说我们现在创建的是一个什么呀,是一个空盒子,这个里边现在什么都没有啊,什么都没有好,我们这儿还是先停一下。
我来说两句