00:00
那么我们将在本小节当中继续为大家讲解面向对象的内容,在之前两小节中,我为大家讲了一下对象和类的概念,以及它们之间的关系,对不对?那么到本小节,我们应该开始真正的写我们的类和对象了。首先呢,我们要想写一个类,自然需要一个文件来进行保存,对不对?所以我们在里边新建一个文件啊,要写什么类呢?比如说我们想写一个人的类行不行?我们要写一个人的类,那在这里边新建一个文件。第一个问题就在于,哎呀,我们写文件的时候,这个文件名该怎么命名呢?在我们写这个,这个现在要讲的是类和对象的啊的实现啊和书写。点击OK,创建普通文本文档,给大家记录一下啊,首先呢,我们要想创建一个什么文件,在Python当中,我们创建文件的时候通常习惯什么呢?使用小写字母啊,通常使用小写字母。
01:02
然后来什么呢?来当做文件名啊,小写字母。当做文件名,当然为了,如果字母比较多的话,可以使用下划线进行分割啊,可以使用下划线进行分割啊。写错了可以使用下划线进行分割。当然大家肯定对于我们的什么类呀,文件呀,函数啊,参数呀,各种各样的变量或者使用方式都有一个疑问,说他们的名字到底该怎么写,这个大家不要着急,我会在讲完面向对象以及拈之后,单独开辟一个小结,为大家讲解一下的命名规范好不好,所以我们现在是用到什么给大家讲什么好,创建文件的时候已经知道习惯了,咱说了用小写字母写一个人类对不对?人类的话应该叫human human英文单词点击OK,这样的话我们一个文件就创建成功了,这个文件就是我们用来书写人类的文件。
02:03
好,那文件有了之后,我想在文件里写类是不是,那就涉及到类名的什么呀,规范吧,类名的书写规范。这个规范我们在写类名的时候,通常使用什么呢?叫做驼峰命名法啊,使用驼峰命名法。然后呢,什么叫头风命名法呢?简单的说就是什么呀。字母单词首字母大写,比如说我的汽车,我可以写成麦car啊麦car,麦dear呀啊麦car,我想写什么呢?我想写凶兔,那就是凶白啊兔就这意思,这种就是驼峰命名法,而且呢,实际上啊,这种命名叫做大驼峰啊,这种我们习惯上叫做大驼峰命名法。大数明法,我们在Python里边啊,类就是用这种方式来命名的,看懂了吗?Python里边的类啊,就是使这种方式来命名的,但是实际上啊,驼峰还有小驼峰,还有小驼峰这种命名法,小驼峰小驼峰命名法和大驼峰的唯一区别在于它是除了第一个单词之外,手头大么写叭如说我想写我的汽车,应该是这样写my car啊,小白兔都是小白兔这么写的啊,这页这种叫做小驼峰,但是小驼峰命名法在Python中很少使用啊,目前来说是很少使用的。
03:29
很少使用的,因为里边写这种类用大头风,在其他语言中大透风写类,小透小透风用来写什么呀?写变量啊函数啊这些东西啊,但是在里边很奇怪啊,这个大家的习惯是写类用大头风,但是什么呢?写这个普通的变量啊参数啊,反而使用创建文件这种小写字母加下划线的格式啊,好,不过不用着急,我会把后边给大家总结,我们现在学还是那句话,学什么用什么,那我想写一个类,那总得什么呀,加个关键字吧,对不对,写类的时候呢,需要这样来写class关键字啊C。
04:07
很多人这这个词不是班级的意思吗?没错啊,他确实是班级的意思,但是在英文里边还有一个单词,还有一个意思就是累的意思,那我们写人类,人类hum需要用大通风写对不对?所以这么写就可以了,因为它只有一个单词,所以你只需要human第一个单词首字档写就可以了啊,然后呢,接着往下写冒号。大家开始不知道写什么了,是不是开始出现问题了,这个class是个小写C啊,Sorry,往后写就不知道写什么了,问题出在哪了?问题出在哎,这个类里边该有什么东西呢?所以类的组成就是一个问题了,我们会写类的名称,没问题啊,是不是类的组成?就是我们要考虑到下一个问题了,你看我写类无非就是一个class,一个human加一个冒号就完了,说大家一看这个冒号,哦,原来这是个代码组结构,对不对?但是类里边干什么,你不写的话肯定不写啊,汇报错的,我类里边要写东西啊,那写什么东西呢?在类里边想一想什么样的内容能够把一个完整的东西描述完整描述出来,比如说我想描述一个空调,你怎么样才能给他描述的非常清楚,大家一看一听就知道这个空调什么样的什么情况。
05:18
让大家会想,哎呀,这个空调是白色的对不对,这个空调呢,有室内机,有室外机,这个空调呢,干什么事呢。然后多少钱是不是,这个空调用多少多少伏的电,诶大家想哦,原来是这个样子啊,我们就以空调为例啊,空调为例哦,原来这个空调是白色的对不对,然后呢,1000块钱,然后220伏的电是不是,然后呢,这个呃,还有什么特征,还有这个什么工号多少,工号多少是不是。功耗啊多少,品牌是什么。等等等等等,好,那大家想想我,我在代码级别来想什么东西,能把这些东西给表示表示明白,其实很简单,无非就是用变量来存着呗,是不是,比如说我们写一个color,是不是等于白色?
06:08
等于白色啊,Color等于白色是不是,然后呢,然后写一个什么价格price price啊价格等于1000对不对。所以大家会发现这些东西是用变量就可以存出来嘛,是不是电压你不会写啊,电啊电我也不会写啊,电等于220伏行吗?220伏就凑合给大家写写,你们也凑合凑合看啊,然后呢,还有什么这个功耗是不是功耗power po power等于什么1.5P啊,3P啊之类的,是不是1.5匹是不是。然后呢,哎呀,写错了,1.5匹不是1.5匹好,然后呢,还有什么东西,还有品牌加and grand是不是等于什么?呃,什么等于个什么,妈妈,妈妈牌是不是,妈妈牌是不是,当然这是我编造的啊,妈妈牌的,然后OK,这样的话,空调的一些东西我们可以用变量来表示出来,但是有这些东西它就能称之为空调吗?好像不是,空调咱买回来是用的对不对?它能干什么呢?那空调除了有这些特征之外,也就是说现在表示的这些都是特征吧,是不是它的特征之外?
07:20
还得有什么,还得有功能啊,它不能只有特征没有功能,对不对,没有功能的话,我买了个模型机啊,所以除了特征之外,它还得有一些功能,那功能该怎么表示呢?比如说大家都知道空调能什么呀,最起码它能制冷,能制热,是不是它有一定的功能啊,给大家写出来啊,功能能什么呀?制冷是不是?制冷能加热能加热啊加热热热热怎么写,加热对不对,能吹风是不是,然后还有什么除湿。除湿。除湿呢,除去湿气啊等等等等,这些是不是他们应该有的功能啊,是不是好了有了这些功能之后,大家想我怎么样用代码来实现它呢?哎,这个东西一听好像好的时候啊,功能,功能不就是当当时说函数就是功能吗?没错,所以我们可以在写空调这个功能的时候使用函数来表示,比如说DF是不是make cool啊,Make cool。
08:21
Co l make个库啊,意思就是什么东西呢?哦,我可以制冷是不是,这里边可以,这里边括号写上一些参数,如果有需要的话啊,然后下面写上什么制冷功能,是不是当我用伪代码来实现啊,制冷我不给大家写代码,制冷功能也是用函数可以表示制冷功能对不对?我想加热来DEF,那我可以make a hot make下去,Hot make hot,这是不是就加热功能,是不是加热功能,然后我想吹风是不是,然后def make wind。下划线,当然我这个英文不太好啊,大家凑合看吧,啊,没问啊,这叫做吹风啊。
09:01
吹风功能是不是以此类推啊,以此类推哦,也就是说原来我想描述一个空调的话,除了要描述它的表面特征和一些,呃,一些就是属性之外呢,还要描写出它有什么样的功能,对不对?你把这些东西都凑合到一起,那一个空调的东西是不是就出来,或叫一个空调的概念是不是就出来了,那么空调这里边它就是一个类,因为咱说了空调嘛,不是,它又不是说这个空调那个空调,空调就是一个类,所以空调这个类里边,它所具备的内容分为两个大部分,第一个大部分叫做什么呢?关于空调的特征部分,也就用来描述它的属性部分。然后第二个部分就是描述它就是什么呀,我们空调的能干什么,它的功能部分,那么这样一来的话,大家通过我写的代码就可以看出来,原来特征部分可以用变量来表示,功能部分可以用函数来表示,那这样一来的话,哎,类中有什么东西组成就很明确了,类中的组成只有两个内容哈,类。
10:01
中内容只有两个,只有两个,一个叫做什么呢?一个叫做属性,一个叫做方法,啊,叫做方法,然后呢,在这里边什么叫做属性呢?其实就是用于描述什么呀,用于描述我们特征的变量就是属性,所以说属性本质就是变量,然后什么是方法呢?方法就是用于描述什么呀,功能的函数,所以你要是再往代码这块想的话,那边东西其实就俩,一个是变量,一个是函数,除此之外没有别的内容明白。所有类的组成大家应该明白了吧,啊,只有属性和方法这两个,但是呢,大家一想,函数这个东西好是当咱当年也说过,函数的本质上其实就是一个变量吧,对不对,特别是函数名,本质上就变量名吧。所以也有一种说法啊,也有说法,也有一种说法,也有一种说法,怎么说的呢,说中啊类中。
11:11
写错了,类中只有类中有只有属性啊,这种说法也是没有问题的,它其实就把方法和属性看成一种的,看成一种,因为方法是函数,函数的本质和变量实际上是一样的,对不对?所以这么说也正确,不同的语言叫法不一样啊,有些语言分的很细,有些语言分的呃,稍微粗糙一点,你就比如说像PP语言,那它的属性和方法分的非常明确。啊,为什么呢?因为在PP里边,这个变量和函数是完全两个不同的概念啊,不同的东西,而在我们的Python,或者说像javascript里边,那它其实这个方法本身就是函数,方法本身就是变量,所以呢说只有一种属性,这种是随着不同语言的说法不一样。好,那现在我们已经知道了类中有什么组成,那么我们就来写一下人类行不行,那咱说了,人类也是样态,是类两部分组成,属性和方法。
12:08
属性和方法两部分组成,那么大家想一想啊,一个人要想表述出一个人类,他应该有哪些相关的特征,第1I最敏感的是不是他是男的还是女的是不是?所以我可以在这写一个six,写一个男是不是,这是表示他的性别啊,这是表示他的性别写错了。这表示他的性别,然后呢,还有age,这个表示他的多大岁数,是不是比如说我们写上25岁啊,这个用来表示他的年龄。然后呢,再来一个什么呢?再来一个这个name是不是,然后呢,这里边可以用来写他的名字是不是写他的张三李四王老五是不是名字,这是名字部分啊,名字写错了名字,然后呢,以此类推啊,要想表述出一个人一个人的概念。
13:03
那么其实要存的东西非常的多,什么身份证号啊,身高啊,体重啊等等等等,这些东西可以是很多很多的,当然我们不可能写出那么多来,对不对?你要写那么多,天都亮了,咱这玩意啥也别干了,光写这个就行了,178厘米啊,这是他的身高,是不是我少写两个啊,身高?写错了啊身高,然后呢,再来一个体重吧,Wait啊,等于90公斤,怎么样,90kg9公斤好,这是体重。这是我们的体重。好体重啊体重好,那到此为止啊,我们就不再写属性了,但是大家知道其实还有很多很多的属性,对不对?好,那这样的话写的对吗?程序有没有问题呢?右键运行一遍程序,你来看一下。就看报错是不是就完了,没有报错证明我们这个什么呀类的代码组写的是没有问题的,对不对?好,那接下来人吧,他不是说是个死的,是不是人都要活的呀,或人还有其他的一些能做的事情,比是能抽烟,能喝酒,能烫头,是不是能骑马,能喝能开车,是不是各种各样的功能,那这些功能你要表示出来呀。
14:12
如果说说一个类里边只有属性,那说明他是个死人啊,那活着能干很多事情啊,对不对?所以我们可以再加一些方法,比如说加一个什么呢?吃饭的方法,那这个时候我们就可以加一个eat函数在这里边就可以了。当然这里边会大家写函数的时候会注意啊,这里边会自动加一个SF,它是干嘛的,我们现在不用管它好不好,现在就把它写上去就可以了,然后在里边print打一句话,我们写上吃饭功能,我们会到后期为大家讲解S法吃饭功能。侵犯功能,然后呢,还会干什么呢?还会喝水对不对,喝水好,然后呢,D我们写一个drink drinknk啊drink那可以在里边加一个喝水的功能,是不是写错了啊引号。喝水功能。
15:03
然后呢?接下来啊,吃饭喝水,然后呢,还可以学习对不对,学习D啊啊,虽然你不一定愿意学习,是不是来print套上括号,这是学习功能啊,学习功能,然后以此类推,人的什么所具备的能力或者功能,你都可以用函数的方式为这个类来添加,那这样一来的话,我们其实就完成了一个类的书写。完成一类数呀,来右键运行一遍程序完全没有问题,看见没有,说明我们的类书写成功,也就是类类的组成,就是刚刚这两个东西啊,一个用言描述变表述描述特征的变量,一个是用言描述功能的函数。好了,那我们下面既然已经写完了类,我们来总结一下类的书写中需要注意的一些内容,也就是它的规则行不行。
16:00
来给大家写一下啊累的输血规则。规则好,在书写类的时候,大家需要注意这么几点,第一,要想声明一个类,一个类必须使用class关键字啊,必须使用class关键字,比如说咱又设置关键字了,是不是class,然后呢,第二,然后。往下写啊第二。类的类名啊,类名的声明。然后呢,需要符合,需要符合驼峰命名法。当然这个是推荐你这么干啊,你要不是实在是我就不这么写行行不行啊,程序语法不会报错,但是并不推荐啊。然后第三就是大家需要注意类里边有什么东西了,类中只能存在两种内容,只能存在两种内容,哪两种内容呢?那就是我们所谓的属性和方法。
17:06
只不过属性和方法,它的完整名称叫做成员属性,在里边叫成员属性和成员方法啊,但是你要简称属性和方法也是没有问题的,除此之外。写错了啊,除此。之外,不允许,不允许出现其他内容,很多学们就说,那我要在这写一写,会不会报错呀?你别说,还真不会,比如说我们在熟悉的方法之间加了一个判断行不行,If写上一个to,然后我们print一下啊,在里边写一个print,这是这明显不是一个变量,也不是个函数,而是个流程结构嘛,对不对,我写上一个啊,写上一个大魔王复活了,大魔王复活了。好不好填一下,首先我可以明确的告诉你,这行代码不会引起程序报错,右键运行一遍程序不会报错,而且这行代码甚至会执行。但是这种书写规范是明令禁止出现的,类中不能够出现这种内容。当然很多学生说,那既然不让出现,为什么写类的时候你出现它还不报错呢?这是因为pon目前什么呢?它是从过程化找面向对象转换的时候,还没有完全处理好一些遗留问题导致的。所以大家不要这么写,不要这么写,不要这么写,重要的事情说三遍啊。
18:35
这是因为我们Python啊,其实它是一个呃,慢慢发展的语言嘛,是不是,毕竟这过了30多年了,它慢慢发展过来,开始只有过程化编程,然后逐渐的加入面向对象,但是有些东西还没有调整好啊,所以大家需要注意一下,不要出现属性和方法之外的内容,好吧。
我来说两句