00:00
同学们大家好,我是新弟联的彭浩老师,那么我们开始本小节的简解讲解,本小节当中我将为大家讲解一下我们内置的一些成员以及什么呢?以及常用的一些方法的分类,好不好,在里边首先新建一个普通的文本文件啊,然后呢,在这里边我们写上啊,写上什么东西呢,这个。内置成员内置成员。我们及我们的方法分类啊好了,点击确定。然后呢,OK,然后在这里边先看一下内置成员吧,行不行,内置成员来内置成员。在我们Python当中啊,面向对象当中有几个常见的内置成员,他们分别是下划下下划线D啊这个我们是不是见过了,是不是还有下划线下划线然后doc啊,下划线下线以及下划线下划线name么啊叫ame下划线下划线以及什么呢?下划下下以及我们的叫下划线下划线model下划线下划线和我们的下划线。
01:10
下划线,我们的什么东西呢?叫bess啊,就这么几个常见的,先给大家讲解一下它们的作用分别是什么?首先呢,来,我们在这边新建一个Python文件啊,右键新建一个Python文件来写上啊,我们写上这个内置成员,成员怎么说me me啊me。B好,Member点击确定,然后呢,在这里边声明一个类啊,我们现在这里边声明一个类。声明一个类好写了class,那咱写什么类呢?写上一个人类就可以了,好不好,然后加一些成员属性和成员方法啊,成员属性以及一些成员方法。好在这里边呢,成员属性在里边加上,比如说加上一个six等于一,然后再加上一个age。
02:01
等于18,然后呢,再加上一个什么呢,这个color吧,好等于yellow好搞定,然后乘员方法呢,咱也随便加两个啊,比如说加一个效的方法dfsl smile套上括号。Print同生框,我们写上啊叫哈哈哈哈哈,然后再来一个DF,来一个哭的方法,C哭的方法,然后呢,在里边输出print框。我们输上五好搞定,然后呢,下面就开始尝试我们这些内置的成员属性到底是干嘛用的?首先DCT的作用我相信大家应该已经有所了解了,因为我们之前用了好多次了,是不是在这里边实例化对象,好,我们写上一个人。等于一个hum mn等于h hum m human套上括号,然后呢,使用我们的下划线下使用我们的下划线下划线D啊来进行一个尝试,首先我们如果使用类名啊,DR下线下线,CT下线下线,我们可以看到当前类中的什么呀,成员的详细信息,组成的字典啊,包括内置的以及后来我们自己手动添加的对不对?然后呢,如果使用对象的方式也是可以啊print套上括号,我们写下人点。
03:22
下限下限B下限下限,但是呢,这个时候我们会得到一个空的集合,因为我们现在在类里边声明的什么呀,成员都是类中所有的,而没有什么呀,没有初始化的时候加的对象的,所以在查看对象的时候,你会发现它的成员是空的,那么DCT的作用也非常简单,就是什么呀获取类或者是对象的所属成员啊,所属成员。组成的集合。一定是归这个类或者对象自己所有才行啊,组长集合,然后呢,Doc是干嘛用的呢?Doc它是英文单词document的一个缩写,简单的说啊,它是一个说明文档,给大家看一下,下线下线doc下线下线doc doc下线下线。
04:09
把上面这个我们进行一下注释,给大家来看一下doc的一个作用,首先呢,在这里边我们可以通过类名human human,点下划线,下划线doc来进行一个输出,右键我们看一下结果是什么,你会发现什么都没有,为什么没有呢?很简单,因为我们类中还没有文档,或者叫说明文档,那我们当年讲函数的时候,是不是说函数可以加文档啊,类也可以加,怎么加呢?就在类的最开始部分使用和函数一样三引号,叭,如说你在里边可以写上这是类的文档啊,然后右键运行,你就可以看到这个信息了。什么类的文档,然后呢,你可以在类文档里写上什么成员,写上他的成员啊,他的成员的信息,他的成员属性啊,成员方法呀,返回值啊,作用啊,以此类推,都可以在这里边进行一个详细的描述,让使用这个类的人能够更加方便的了解我们类的信息。所以doc的作用是设置类的,呃,就获取啊,获取类的文档信息。
05:17
好了,然后呢,还有一个叫做下划线,下划线内部的成员,那它是干嘛用的呢?来我们在这里边给大家看一下啊,把这个注释调我们来看一下,下划线下划线name又是干什么用的呢?在这里边啊,下划线下划线name。好,下线,下线用法呢,依然是print,套上括号,写上human,点下线下线name下线,下线这个时候它的作用是获取类名哈,它的作用是获取类名,看见没有,告诉你类的名称是human,看见没有,所以它的作用叫做获取类名称的字符串啊,获取类名称的字符串,获取类名称的字符串啊,就这么一个信息,非常简单,对不对?所以当你在类中需要使用类名的时候,可以用这种方式来进行获取,然后呢,还有下限mole啊,它是干什么用的呢?这个对我们来说可能还有点早啊,但是并不是很难理解。
06:13
来在里边下划线,下划线。下线下线Mo。Mo Du下线下线来打印一下,大家就看不明白了,来写上我们的类名human点下线下线mole下线下线,你得到的结果会是一个下线下慢的一个值,很多人,这什么意思呀,我告诉你啊,这个意思表示当前文件啊,这个意思表示当前文件,然后呢,我们下线下线O,它表示什么呢?获取这个类所在的文件名啊。听好了,它的作用叫做获取。获取当前类所在的文件的名称,不过需要注意的啊,当前文件它会显示显示为下线,下线慢,也就说这个类如果在当前运行的文件中会显示慢啊,如果是在别的文件中引入我们当前文件的,那它会显示另一个文件的名称,好吧,然后再看一下最后一个了,最后一个basis啊的作用呢,其实也很简单啊,在这里边我们可以直接打印啊,下划线下线BS下划线下线,如果你直接打印PRT插上框,打印我们的类名U点下线下线base ses下线下线,那么你得到的结果应该是一个什么呢?应该是一个元组啊,写的什么东西呢?好了后说这里边这个class object没看明白呀,好了,那么这个时候返回最上面的时候,我们加一个什么呢?给它加一个副类,你就明白什么意思了。
07:53
好,在这里边再声明一个类啊,在声明一个类,比如说我们这里class写一个animal动物,然后pass一下,我们让人类继承动物类,那大家也理解嘛,是不是al,然后呢,也就说人类是继承动物类的,也就说人人类的父类是不是有了好我们再次运行程序,你会发现。
08:14
它的结果是class animal,如果说我们还有一个类,比如说在里边再加上一个啊,声明一个类,比如说我们加上一个什么呢?加上一个,呃,这个叫做生物或者叫哺乳动物行不行,不太好啊,叫什么东西好呢?人类能继承这个的话,再来一个,嗯。Class,来一个行为类吧,行不行?随便写一个行动了,Act人毕竟能动,是不是咱写一个action类来?Pass一下,OK,那么我们让它人类有多个福类来。把它也粘进来,那么这次再看就看出结果了,看见了吗?你看也就是说它获取是当前类的什么呀,负类列表吧,是不是,所以这个basic的作用叫做获取当前类啊,获取当前类的父类列表,其实就是什么呀,继承的括号的那个信息啊,这就是我们内置的一些常用成员,内置成员讲完了之后呢啊,常用就这几个,你们要为大家介绍一下方法的分类啊方法的分类。
09:23
方法的分类。分类,当然很多学民说我们之前不是学过方法了,分什么对象的方法呀,是不是绑定类的方法,非绑定类的方法呀,那这次我们要进行更加详细的讲解,也就把它类分的更加详细一点,之前其实只是为了学习暂时的一个分类啊,那在里边用,让我们的分类更加清晰,我新建一个文件啊,我的文件就叫我就可以了。然后呢,在这里边啊,我们声明一个类,声明一个类,然后呢,Class随便写一个,比如说我们就写一个人类吧,好。然后呢,OK,先pass一下,我们分类,实际上在P当中,类的方法可以分为四种,哪四种呢?第一种叫做什么呢?对象方法,第二种叫做类方法。
10:15
第三种啊,叫做绑定类的方法,第四种叫做静态方法,有这么四种方法的分类啊,好的,这个好像有点太多了,是不是,其实并不是很多哈,来我们一个看一下他每一个人是怎么声明,怎么使用的,以及它特征好不好,在这里边啊,我们干什么事呢?为人类加上四个方法啊,成员方法。乘员方法,咱加上四个啊,咱给它加上四个,那在这里边啊,第一个方法DF,我们加上一个吃喝玩乐行不行?E的方法叫吃的方法,然后先pass一下,然后再加一个,呃,DF加一个喝的方法drink啊drink。然后呢,Pass一下。
11:01
然后再加一个五的方法,Play play啊,考上括号。好。来pass一下,然后呢,再来一个乐啊ha,好,四个方法写完了,反正这四个方法目前来说都一样,对不对,为了让我们的方法啊,每一个方法都不太一样,能够对应上去,我们在这里边给大家每一个都单独的进行是改造行不行?第一个啊,这是一个吃的方法,是不是吃方法啊,吃方法我们要把它改造成一个什么呢?叫对象方法,好吧,改造一个对象方法。那么什么叫做对象方法呢?简单的说,对象方法就是该方法中会直接传入当前对象啊,也就是说它会把这些对象直接传到你这个方法里边去,那么这个非常简单,因为当我们写一个普通方法里边带有SF这种情况的时候,它其实就是一个对象方法来看一下。
12:04
好,这是一个对象方法,对象方法也有使用要求,必须通过对象来进行调用啊,必须通过对象来对用,所以我们想调用这个方法来实例化对象调用方法。实例化对象调用方法首先画对象简单是不是人啊,等于human human。然后呢,调用我们的对象方法看好了。调用对象方法来print啊,不用指print,直接人点it就可以啦,然后右键运行一遍程序。是不成啊,这是一个对象方法,而且我们也可以看到啊,当前SF接收的其实就是什么呀,当前人类的对象本身对不对,所以对象方法我们一直在使用,而且非常常见,那么对象方法的调用啊,注意它的调用方式。
13:04
调用方式必须是对象点乘员方法加括号,必须用这种方式来调用,那么当然它也有自己的特征,什么特征啊。特征,它的特征就是会将当前对象传入方法中,是不是好对象方法我们比较常见,我们再来看一下第二个方法,第二个方法叫做这个,这是一个喝,是不是吃喝玩乐喝喝方法,我们把它改造成一个什么呢?改造成一个类方法好不好叫类方法。类方法,那什么叫做类方法呢?它和对象方法刚好对应的,对象方法会把对象传到方法里边,而类方法则会把类传进去,那这里边自然不能写SF了,应该写一个CS参数比较合适,对不对?你写ABC其实也无所谓啊,但是我们习惯上写CS,然后呢,那你这样其实大家也知道啊,这个SF其实写ABC也没关系,写123也没关呃系不是ABC也没关系,写写XYZ也没有关系,你写成CXQ一定接受类吗?不是,当你这样写的时候,Drink其实还是一个对象方法,那么怎么样才能让我们的程序把类传到这个CS这个参数的位置呢?
14:18
这个需要用到什么东西呢?我们学过的装饰器,所以要想保证它是一个类方法,必须at class method。需要使用装饰器,声明这个方法是一个类方法,那么这个时候程序一看装饰器就知道啊,我要把类传进来,所以这是一个类方法。好,这是一个类方法,然后未来刚大家看出这真正的是类传进来了,我也给大家打印一下行不行,来右键运行,现在没什么变化,因为往外调用了,好把上面这个调用注视调。把上面这个调用调用的注释掉啊,我们来调用类方法。
15:01
来第二用类方法,类方法的调用直接通过类就可以human点什么呢?Drink,然后呢,直接运行看好我们传任何参数啊,你不用担心,因为在接入drink的时候,它会自动把类传到drink当中,看见了吗?所以CS收到的是类本身啊,是类本身,然后他也输出了这句话是不是没问题啊啊这就是我们的类方法,类方法和什么呀,和这个对象方法是相互对应的,那么类方法就是在方法中会直接传入什么呀,在方法中啊,会直接传入当前类的这么一种方法,它的调用方式。调用方式是什么呢?是类点成员方法,用这种方式来调用的,它的特征则是会将当前类传入方法中,这就是我们的类方法啦。那么类方法完了之后呢?我们还有一个之前学过的方法,叫做绑定类的方法。
16:06
绑定类的方法在写的时候干什么事呢?来,这是一个吃喝玩的方法,是不是玩方法,我们需要把它做成一个绑定类的方法啊绑定类的方法。绑定类的方法则是指它这个方法中不需要任何参数接收类和对象直接啊,你有别的参数你可以传,但没关系,我直接写这个方法就可以了,跟类什么和对象没有什么太多的联系,但是呢,调用的时候只能通过类来调用,比如说print啊,这叫做绑定类的方法,绑定类的方法这个方法在用的时候只能通过类来访问啊,只能通过类来访问,所以在这里边我们给大家看一下这次的调用啊。好,上括号在里边来调用绑定类的方法,直接通过hum human,点什么呢?Play就可以了。
17:01
当然啊,由于你这个方法是一个非常简单,也没有什么参数需要接受任何对象的,所以直接运行就可以了,它也不会传入这个对象,看见没有绑定类的方法,其实你可以认为他这种方式的话,什么呀,不需要传入任何东西啊,但是注意看了,如果人家函数本身或者方法本身需要写其他的参数是不是,那你得该给还得给,我所谓的没有参数是指没有什么呀,没有像selff或者CS这样接受类和对象的,明白了吗?然后呢,到了我们把这个先记一下吧,绑定类的方法啊,其实就是什么呀,就是就是啊叫做在方法中不会传入类和对象。类或者对象的方法,然后呢,它的调用方式需要注意啊,方式,因为它没有参数能够接受类和对象,是不是,那么大家知道对象是自动传的类还得声明,是不是你又没加声明,所以它的调用方式只能是类啊点乘元方法。
18:05
大家会,其实可以看得出来啊,这个绑定类的方法和类方法非常相似,没错,它俩其实只有一个地方不一样,就是要不要把类传进去啊,好了,这是我们的调用方式啊,它的特征就是。特征就是不会传入类或者对象的,然后还剩一个静态方法,那什么又叫做静态方法呢?简单的说啊,我们来乐做一个实验,好吧,乐做乐方法,乐方法。乐写错了,叫乐方法。方法,我们要把它做成一个静态方法。静态方法。静态方法说的简单一点,就是跟类和对象没关系啊,我跟累没有什么关系,跟对象也没关系,我只是放到你的类里边,就相当于暂暂助在里边,但是我离开也没关系,我不离开对你也没什么影响,这叫做静态方法。但使用静态方法的时候呢,他也不需要接受任何对象和类的参数,但是呢,我们需要对它做声明,也就是说需要加装饰器哦,At static sta sta static method,这就表示声明当前方法为一个静态方法来print放上括号啊,我们写上啊,静态方法。
19:23
这是一个静态方法。静态方法,那静态方法我说过,它只是暂居在这个类的结构里边,实际上跟类和对象都没有什么关系,所以你在调用的时候啊,类和对象都可以用的来调用。类静态方法,静态方法就是我不动跟你们没关系,你们爱怎么动怎么动啊,然后呢,如果通过类来调用human.happy啊,它是可以调用的,大家请看是不是可以调啊,我通过对象也是可以调用的,来人点happy。好,也是没有问题的,两个都可以调用。
20:02
看见了吗?因为它和类对象没什么关系,所以你只要是静态的,你随便调用它都可以用得到,那么所谓的静态方法就是与类和对象没有关系啊,类和对象无关的。无关啊,但是存在于类结构中的方法,那么它的调用方式则有两种方式类啊,加上我们的成员方法也可以对象或者。或者啊对象点成员方法也没有问题,都可以调用的啊,啊它的特征就是就是什么呀,就是类和对象随便调用呗,类或者对象都可以调用。都可以调用,这样一来的话,关于我们方法的详细分类也就介绍完了,当然大家会有疑问说为什么要坚持这个详细方法呀?因为我们一会儿要什么呢?讲一个抽象类啊,需要对每种方法进行抽象,所以啊,先来对方法的分类进行一个讲解啊。好了,感谢大家收看本小节的内容,我们下一小节再见。
我来说两句