00:00
同学们大家好,那么这一小节我们继续为大家讲解面向对象的内容,那么这一小节主要内容是为大家讲解面向对象常用的函数。来,在里边我们新建一个文本文件。右键新建一个啊,普通的文本文件就可以了,来面向对向常用函数啊。好,并不是很多啊,好。记录一下,那么在这里边我们要为大家介绍这么几个函数啊,哪些函数呢?第一个函数叫is sub class啊,Subs,第二个函数叫is instance,第三函数叫做has at tr,第四个函数叫做get at tr,然后第五个叫做什么呢?Set at tr,第六个叫做Del at tr,以及我们的Di啊,以及我们的DR函数和我们的这个property啊,其中这里边我们有几个都见过,对不对?
01:04
好了,这几个函数就是我们这一节课要讲的内容,好了,先看一个来看吧,先看第一个is sub class,那么如果英文稍微好一点的兄弟们就能看出来它的意思对不对,Sub class啊,Sub class表示子类吧,对不对?好在里边我们新建一个啊fun function文件,用来测试一下第一个叫做is sub CS class,它的作用是什么呢?Is sub class它的作用啊,是作用叫检测一个类是否是另一个类的子类啊,就这么一个函数。在检测父子关系,就是继承方向是比较常用的啊,首先呢,在这里边啊,为了测试我们需要声明几个类,比如说先说明一个father类啊father类。然后pass一下,里边不需要写什么东西啊,第二个再生明一个类class,我们写成一个song类啊,然后呢,Pass一下,然后呢,这个时候我们在这里边使用这个函数测试一下行不行,Is sub class括号。
02:09
前面先放一个类啊,比如说我们放放这个放类,然后呢,F后面放要检测的负类啊,那么它的检测结果会是一个布尔值啊,跋竟是不是置结果只能是或者不是二选一,对不对?那么在这里边我们如果运行检测的时候,你会发现它是一个false啊,原因很简单,儿子类和负亲类现在没有任何的继承关系,所以你检测说儿子类是不是father类的子类的话,那么它不是,但是如果我们在这里边加上一个父类,就是在这里边指定sound类的负类是father的话,再次进行检测,那么它的结果则变为true,所以这就是is sub class的一个用处,非常简单啊,检测一个类是否是另一个类的子类啊,它的格式呢,用起来也是非常简单的,来给大家写一下啊。哎,它的格式是这样写的,Is sub class class is some class,然后前面要写一个什么呢?被叫做子类吧,然后父类返回值需要大家了解啊,返回值是什么东西呢?过尔值啊,过值,哎,不是这个啊。
03:15
叫布尔值好搞定,那么在这里边这个函数有个需要注意的地方啊,比如说我要检测丧类的负类是不是father,或者要检测这个呃,丧类是不是father类的子类的话,那肯定是成功的,但是如果我要检测丧类是不是object类的子类的话,小欧啊小欧object子类的话,那么右键运行结果也是处啊,结果也是处,因为任何类都是什么呀,Sound啊,不都是object的这个子类对不对,因为大家也知道哈,我们所有类默认继承是哦不,这样的,这个之前大家听过吧,是不是?所以只要在这个继承关系上面,那么检测的结果都是true啊,不是说非得是第父子父子关系,如果是就是中间啊,继承了多次,只要在这个继承链上面的话,那么通通会认为它涉及到个此类操作啊,所以这个是一个注意事项啊,注意。
04:11
事项只要存在于继承关系中啊,那么就成立,这个就是这个操作就成立啊好再看第二个啊,第二个叫is instance is instance是什么意思呢?它的作用啊。它的作用,看它的作用叫做检测一个对象是否是另一个是否是指定类的什么实例。这个意思说白了就看一下这个对象是不是这个类做出来的,好了,那在这里边啊,它该怎么用呢?我们在里边把上面这个a stop class进行一下注释,给大家看一下这个操作。好,然后呢,在这里边注释一下,看一下我们这个is instance is instance函数的应用,首先呢,我们在这里边声明一个类啊,Class human不需要什么写什么成员pass一下就可以了,然后呢,我们在这里边实例化一个对象好不好,比如说写一个人啊,等于human。
05:14
Humma,我们实例化出来的一个对象对不对?那么这个时候就可以用is tip来进行检测,那么结果是这样的,Is result等于is in test,它上括号前啊放你的对象,比如说我们的人后面放你需要检测的这个类hum man。Humma,然后呢,打印结果就可以了啊,Print套上框result,那么在这里面大家可以看得出来,这个人明显是由人类对象造出啊,不是,明显是由人类制作出来的对象是不是,所以它的预算结果会是一个处啊,是不是是不是处啊,但是呢,比如说我在这里边还有一个类,比如class叫monkey monkey monkey的话,然后呢。
06:00
这里边也写一个pass,好,那么我们如果检测说人是不是monkey类的实例的话,或者叫他的对象monkey是OK啊,好monkey啊是这写来右键运行程序,你会发现它是一个false,所以它的作用是不是就这个它的格式的话是这样的is,它上块前面放对象啊,后面放要检测的类就可以了,然后它的返回值也是布尔值啊,也是布尔值来在这里边啊。需要注意一个东西啊,很多说这个需要啥注意呢?还是关于object的问题,你如果检测这个对象是不是object的什么呀,实例话它也是啊,它是也是看到没有,所以其实无论在于我们这个is test,还是我们这个这个叫做is is sub class啊,跟object检测都是没有必要的,因为永远为true。另外的话,我们这个A在检测的时候,允许检测某一个实例是不是多个什么呀,是否是多个类的实例,或者多个类中某一个的实例,给大家写一下这个效果啊,给家看一下,比如说我想检测一下人这个对象是不是人类或者monkey的类的一个实例,那这可以在里边写上两个,用原组的方式写出来,比如说monkey monkey,然后呢,再写上一个human。
07:26
Hu ma,那么这个时候的预算结果也是成立的,来,右键运行一遍,看到没有依然数,它的意思是检测人这个对象是否是后面两个类其中一个的实例,只要满足一个就可以明白吗?所以是一个或者的关系,而不是并且的关系,切记切记啊,这是我们的is test的一个应用啊,或者另一种用法吧?来,剩下这四个就是一套的了,干什么事呢?跟属性检测相关的,来在这里边把刚刚这个is instance给大家注释一下。好,然后我们来看一下下一个函数啊,下一个函数叫hands at tr。
08:04
Has at tr,那么它的作用是什么意思呢?Has是不是有没有的意思啊,对不对,At tr属性啊,所以它的作用也很明显啊,叫做检测啊,我们的叫做类或者是对象是否包含指定名称的成员啊,指定名指定。名称的成员就这么个东西啊,好,那我们来看一下怎么用呢?首先在这里边我们先来写一个类行不行,Class human human,然后呢,我们在这个human里边干什么事呢?诶,写上一些成员属性。和这些方法好熟悉,我们加两个行不行,加上一个叫叫做一个叫做age吧,等于一啊six等于什么呢?等于慢吧,然后呢,方法咱也加一个,比如说第一个叫CRYCRY啊哭,然后我们呢,我们就随便输出一些print print啊,Print我们输出一下啊呜。
09:06
好就可以了,那么在当前类中,我们有三个成员,两个属性,一个方法,对不对?那么我想检测的时候就可以这么来做叭,如说先对类进行检测啊,叫对类进行成员检测,那么检测的操作是这样的,Has at tr at tr前面at tr啊。前面放对象,放类也可以的啊,比如说Hu mn,后面放你需要检测的成员的名称字符串,比如说我要检测k correct啊C,这意思就是检测人类有没有个叫做CRY的一个什么呀,有没有叫的一个成员啊,那么这个时候我们可以在里边result接收一下。在里边print一下我们的result,你可以发现它的预算结果是true的。看到没有,但是你要说我检测有那个叫smell的,明显危险了,所以它的结果为false。看见没有,就是检测有没有这个成员,当然我们也可以干什么事呢,进行实例化检测对象啊,来实例化对象。
10:07
实例化对象,比如说我们在这里边实例画一个什么呢?实例化一个人吧,好,等于Hu mn弹上框,对象是有了,那我检测的时候也可以这样检测,叫检测叫A,叫has a套上框前面放你要检测对象,后面放检测成员,比如说我要检测什么呢?Age这个成员,就问一下人类对象,人有没有A叫age的成员呢?那么大家觉得还有还是没有呢?来右键运行一遍就知道了,答案是什么呀?是to是有,简单的说就是人的对象是可以访问到age的,很多说说它不是归他所有吗?不是啊,如果要检测归对象,它本身所有用的是我们的什么呀?用的是我们的下下DDDCT对不对,我们现在只要是能访问就算是存在啊。好了,这个函数给大家介绍完了,它的使用方式啊叫格式。
11:01
是这样写的好,叫做has at啊,套上括号,然后前面放对象,当然放那也可以的啊,然后呢,后面放什么呀,成员名称啊,成员名称就可以了,然后呢,返回值依然是果值。管制啊,然后呢,接下来看下一个啊,这里面加个注意事项吧,行不行,注意事项啊叫可以检测类,也可以检测对象,而且需要注意啊,只要可以访问就什么就算存在就算存在。好,来,接着开我们下一个函数,啊,下一个函数叫做什么呢?Get at tr。从名字上也能看得出来啥意思嘛,是不是?Get,不是获取吗?所以它的作用是要什么呢?叫做获取类或者对象的指定成员啊。获取类或者是对象的成员值啊,成员值就这么个东西,那么我们来看一下它该如何使用呢?把上面这个函数也进行一下注释啊,也进行一下注释。
12:10
好,注释掉。我们来看一下get at tr get at tr。好在这里边呢,老规矩,我们先给实例画一个类叭,如说我们实例画一个猴子类吧,Monkey类啊,好吧,Monkey类,然后再加一些成员属性和一些成员方法啊。加一些成员属性,再加一些成员方法随便加,比如说属性咱加一些什么呀,Age等于十岁,然后呢,Six等于雄性,呃,然后呢,再加上什么颜色啊,Color俩等于呃,金色gold golden,金丝猴是不是好,然后呢,方法再加一些DF,比如说我们加上一个C,哎,猴子怎么说话我也不听不懂。来在里面print克啊,就是叽叽叽是不是。啊叽叽叽叽叽好搞定。
13:01
那么这个时候我们来干什么事呢?好,来实例化对象啊。实例化对象,好,我们写上一个小猴子啊,猴子,猴子。就等于monkey monkey实际化的对象,然后干什么事呢?我要获取猴子的某一个成员,获取叫猴子的颜色,那么这个时候我们正常情况下会怎么获取啊,直接写上猴子这个对象。DR color是不是就可以了,能不能获取到呢?当然是可以的了,来右键又行,是不是出来了勾en金色呀,那么除了直接获取之外,当然这种是用什么呀?语法获取的,这是语法获取的,我们可以什么呢?我们可以使用get t来进行获取,那么就是result接受结果啊ult result等于get at tr,然后呢,在这里边需要写上三个参数,其实写俩也可以啊,第一个叫什么呢?写上你的对象猴子。
14:01
第二个选项,你要获取哪个成员的名称,比如说我要获取它的颜色,把color字符串放这里边,那么这个时候你就可以获取到print套上框,写上我们的result,右键运行也能获取金色,看见没有,是不是融回去了?当然很多学说,那这个有意义吗?上面相相比有什么区别吗?有,上面是语法方式,而这个是函数方式获取。函数方式,函数方式比语法方式好在哪儿呢?好在如果成员不存在的时候,你可以做其他处理,比如说获取不存在的同学啊。获取不存在的成员,那么大家知道使用语法获取不存在的成员,他一定会报错,你比如说我在里边print一个抛上括号,我写上一个猴子对象啊,点name,咱没有名字呀,是不是?所以你在里获取的时候啊,右键运行它一定是报语法错误的,但是如果说我使用了函数的方式,就可以避免或者叫解决这个问题,怎么做呢?Get at tr发上框要访问哪个对象,猴子对象要访问什么成员呢?Name成员。
15:12
如果这个成员存在,那么我们自然可以拿到结果,是不是或者输出PI啊?Result运行一遍能拿到吗?拿不到,所以呢,他现在也会报错,为了解决这个问题啊,我们get加允写第三个参数是一个默认值啊,默认值比如说小猴子啊小猴子。这边啊,不是对啊,小猴子啊,这是什么意思呢?小猴子这什么意思呢?这就表示获取这个成员如果存在,我就拿它真实的值,如果不存在,他不就把默认值给我了,所以这次在访问的时候,它不会报错,看见了吗?当然如果这个成员已经存在,比如说我要访问color color之料都是不是已经有了,他肯定不会给你默认值的。差是勾,是不是就是这个意思,这就是我们get at tr和上面语法获取上的一个小小的差异啊,剩下的话没什么区别,我们还不如直接用什么呀,给这个语法获取的更快好了,把这个记一下它的格式啊,格式是这样的,叫做get at tr,套上括号,第一个放对象,第二个放成员名称啊。
16:21
第一个放对象,第二个放成员名称,第三个放默认值啊就可以了,好了,然后它的返回值不知道啊,这个不不确定,你看你的成员是什么样的值,对不对啊,然后呢,在这里边啊,再看下一个哈方法,或者叫还上一个函数啊,函数叫做set at tr啊,当然刚刚也给大家讲了,是哎呀说方法,其实双方法是不对的啊,应该叫函数比较好,比较科学一点,什么叫函数和方法怎么区分啊,就是如果它什么呀,是我们内置直接可以使用的,一般就叫做函数,如果它归属于某个对象的话,或者某一个特定对象,我们一般叫它方法啊好了,来看这个set啊,是不是设置啊,好,那我们在里边写一下作用啊。
17:07
它的作用就是设置啊类。或者是对象的成员啊,成员值好,这就是它的作用了,来我们看一下能不能进行设置呢?来为了讲这个,我们在这里边把上面这个依然注释掉。当然,我会把这个类给大家拿出来好不好?好,把这个注释掉,然后把我们现在这个小猴子的类给大家拿出来啊,猴子的类当然了,在这。跑偏了啊。把猴子类复制过来,我们要用它来进行一个设置相关操作。好,粘贴一下。来set at啊,考上框好类有了,类有了之后呢,我们在这里边啊,先实例化对象好不好,实例化对象,那么在这里边啊,猴子猴子啊,等于我们的monkey monkey这样的话对象就有了,然后呢,为了大家看一下它的成员,我给大家先打印一下吧,等一下print,我们猴子。
18:12
啊,里边的下线下线D他的成员,那么他的成员应该是什么呀?是没有的,现在啊。是不是空的,因为他的是归类所有的嘛,那我想设置一下怎么办呢?来我们就用这个操作就可以了,设置对象成员,其实你给类设置也是可以的,但是我就不再写了,猴子点,比如说我们要加,我们要设置什么呢?我们要设置一个name,然后什么呢?叫他小悟空啊小悟空。好,设置成功了吗?来,我们再次看一下我们设置,设置之后的一个成员里边有没有个叫小悟空的。是不是出来了名字是不是就设成进去了,当然你也可以进行修改,比如说我要改上猴子啊,点color等于写上一个黑色,黑色也可以啊,黑色也可以,当然这个实际上说是修改,实际上是还是给当前对象加的,因为原来是归类色的嘛,是不是,所以这就是设置操作,当然这种方式大家都知道这是什么,这是不是都是语法操作呀,这都语法方式啊,那么除了语法方式之外啊,我们在这里边还有函数的方式来设置。
19:20
函数的方式设置呢,相对来说也并不复杂,在这里边使用函数方式直接就是set at tr套上括号,然后呢,你要告诉我你要设置哪个对象,比如说我要设置就是猴子对象对不对?你要设置什么成员呢?在这里边写,比如说我要设置一个什么呢?我要设置一个重量嘛,WT,那你要设置成什么值呢?则是第三个参数,比如说我要写上100 100斤啊,是不是有点过了100斤。好,那么这个时候你会发现它依然可以设置成功,跟上面的语法方式没什么区别的,这是函数方式啊,它俩是完全等价的。来,我们在这里边给大家写一下啊,它的格式啊是set at tr,套上括号,我们写上什么呢?对象,然后逗号找成员名称,还有要设置的值就可以了,要设置值就可以了。当然很多学弟说这个语法方式非常简单,为什么要函数方式呢?其实在于啊,语法方式它必须写上固定的成员名称对不对,而函数方式是可以根据我们的需要动态调整成点,毕竟是个字符串嘛,对不对?所以更加灵活啊,更加灵活,也就说语法方便,但是呢,没有函数方式灵活。
20:35
OK,那这样的话,我们也设置完了,它的返回值有没有呢?它是无并没有返回值,好吧,然后呢,接下来看啊下一个叫d lar,那么它的作用就是删除对象程了了来作用。它的作用啊,叫做删除类或者对象的成员,删成员啊,不是删,只是把成员删掉,然后呢,在这里边我们返回来继续来做一个实验啊,把这个设置相关的也进行一个注释。
21:07
好,注释完了之后呢,来我们在这里边。把这个猴子的类给大家复制出来,因为还要用它做实验啊,所以在这里边看一下我们的d LA tr这个函数啊,好,投资类复制过来,然后呢,我实例化对象。好,16化对象咱还叫猴子吧,猴子等于Mo monkey啊,发上括号,对象有了,然后呢,对象有了之后,我现在要看一下对象有什么成员,Print我们猴子猴子啊,第二下线下线D下线下线,那么当然里边什么都没有啊,里边是空的。因为都在类里边是不是,所以你想删是不行的,比如说我想Del,我要删除他的age是不是猴子,猴子点age你肯定删不掉的,它会报错误来预习一遍是不错了,告诉你压根就没有这个属性,Age很简单吧,因为它归类所有,所以我们最好干什么事呢?加几个对象所有的行不行?
22:08
在这里边,我们用初始化方法吧。来DF下线下线init下线下线啊,然后呢,s.name写上一个name等于啊叫做小悟空行不行,然后呢,再加上一个四点这个高度吧,身高等于100啊等于100就可以了,然后这个时候再看啊,里边是有的。哎,先别着急啊,我先把下面这个年龄先删掉。我们这次先看他的成员里边已经有两个归对象所有的,是不是一个name一个高度啊,是不是好,那我想删能不能删呢?自然可以了,EL,我们猴子啊,写错了,猴子点name。那么删了之后,我们再次看这个成员,你会发现真的删掉了啊,右键运行一遍,是不是只剩下一个高度了,是不是所以删掉了name了,那么这种方式大家一看也明白啊,这是语法格式啊,或者叫语法方式,叫语法方式。
23:04
那么我们这里边也有什么呀,函数方式,那就是Del喽,然后在里边你要删谁,先把对象放在前面,要删哪个成员呢?把它的成员写在后边就可以了,比如说我要删什么呢?高度注意看好啊,我把名字注释了,我现在是只删高度。来右边运行一遍。是不是名字还在高度被删掉了,哎,这就是我们删除对象成员的一个操作啊,然后在里边格式。哎,格式我们写上什么呢?Del a tr号上括号,然后呢,里边写上对象和成员名称,返回值无啊,因为它其实跟set一样,是一个执行过程方法,而执行过程函数啊是无。好了,那这个完了之后还有两个函数,是不是还有两个函数呢?这两个其实大家都都已经很熟悉了啊,我就不再做做过多的讲解了,首先呢,在这里边啊,我们写把这两个函数的作用给大家再提一遍就可以了,好作用。
24:08
我们在讲这个魔术方法的时候,就给大家讲过电压吧,是不是它叫做获取什么获取对象啊,可以访问的所有啊,所有成员的列表啊,就是归对象所也好,归负类也好,只要我能访问到,我都可以把它的成员名称给做成一个列表获取到,那proper作用呢?诶,我们是不是在讲描述符的时候用过呀,是不是它是设置描述符操作的函数啊。OK,那这样一来的话,关于我们叫做面向对象常用的函数就为大家介绍完了,好了,感谢大家的收看,我们下一小节再见。
我来说两句