00:00
好,我们继续来上课,这节课呢,我们再来看一下我们的这个内部函数啊,那么内部函数呢,只在于我们这个第一个阶段去使用啊,第二阶段呢,我们就不会再去使用内部函数了,因为我们有更好的方式来去代替这种内部函数啊,所以大家只需要知道内部函数的一个格式就是什么样的就可以了啊,那么所以这里边我给大家标注了一个什么了解级别,那么什么叫内部函数呢?就是在函数的内部再次生命一个函数是不是内部函数,那主要作用干嘛?就是帮外部函数是不是实现一些子功能啊。对不对,那比如说在这里边我们来创建一个16啊,比如说叫做什么呢婴儿。杠func方啊,那这里边我们给大家演示一个内部函数。内部函数对吧?那怎么叫内部函数呢?咱说了就是在我这里边,比如说我定义一个函数啊,叫做oth oth al,然后括号括号,然后在这里边呢,我再来一个FUC,叫做因的,好,这就是内部函数对不对?哎,就说这个因呢,就是我们的内部函数啊,那内部函数也就是说只要长这样的结构,是不是叫内部函数了。
01:02
哎,那好了,那这内部函数主要的作用干嘛呢?作用是不是就是帮助。外部函数完成一些子功能啊,对不对?哎,那我们要看的是什么呢?我们要先学的第一点就是我内部函数如何去调用啊,内部函数可以如何调用,所以这里面我们要去学习的是掌握的是什么,内部函数如何调用啊,是否。可以在外部直接调用对吧,然后呢,在。内部是吧,如何调用是不是这只要掌握这个就可以了,哎,那比如说在这里边啊,我来艾艾一什么呢?艾一行九,这是我内部函数输出的内容,对不对,那么了,比如说说了内部函数在外部可以直接调用吗?比如说在这里边我直接oth oth。好了,调用这个不对,调错了,这是外部了是吧,我调用谁啊调用这个inner,诶调用了好了,那现在我们来看可以吗?在这里面。
02:03
第16。你看干嘛报错了,他说什么呀,你调用了未定义的方式,看到了吧,哎,说内部函数没有被定义,那内部函数有没有定义,有定义吧,哎,只是什么呀,只是它在它里面去定义的,所以我在外部,在外部是没有办法直接调用的,那什么时候可以调用的,除非我先干嘛先oth,我先调用了外部函数,当调用外部函数,外部函数是不是进行执行啊,执行的时候是不是才声明了里面的内部函数,那这个时候我再调用内部函数是不是没有问题。是不是,哎,所以说内部函数在外部能不能直接调用,不能直接调用,对吧,不能。直接调用需要什么呀,调用。外部函数后是不是内部?函数才可以任意。调用的就是这样的,哎,那OK好了,这就是咱们内部函数在什么,在函数外部是如何调用的啊好了,那外部逐何调用,知道了以后,那我们再看,那它在内部如何调用的,比如说在这里边啊,我直接in。
03:07
那这个时候我刷新肯定没有任何效果,对不对,因为什么呢?因为我外部函数这么没调用啊,所以在这里边我需要调用一下外部函数,那我调用外部函数以后,这个时候我们再来看刷新是不是也有一行镜对吧?那也就是说我在函数定义函数的下方调用是不是没问题啊,那好了,那我能不能在函数的上面去调用呢?我们再我们再去用外部函数,外部函数是不是可以在定义函数的上边,对吧,那内部函数可不可以呢?这个时候你再来看。走你,诶,是不是又报错了,怎么样调用了未定义的方程神电呢?对吧,那跟我们之前讲的函数特征是不是有点冲突了,我们讲的函数特征是什么,函数是不是调用不分先后。对不对,你可以在定义函数的上面去调用,也可以在定义函数的下面去调,但是内部函数行吗?不行啊,为什么是这样呢?是因为这样。我们PP解析器再去加载这个页面之前就已经优先的,干嘛把这个函数部分都已经优先加载了,但家注意,它只是加载,并没有执行,因为只有执行的时候,是不是才能到函数的内部,到它的内部是不是才会定义这些东西。
04:09
对不对,哎,所以它只是优先加载了这个函数,它并不知道里边有因的,知道吧,所以它并没有执行这个函数,那么当代码往里面走,走到第第六行的时候,开始调用因的时候,但是在这里面它有定义因的吗?没有吧,哎,所以我内部函数在它这里边是不会,什么是不会。在这个定函数之前就调用了啊,你调用是什么,是报错的,而且我们这个PP解析器在加载这个页面的时候,是不会加载内部的,它只加载只加载了外部,但由于就相当于一个怀孕的,怀刚怀孕的一个一个女人一样,对吧?那么她刚开始怀孕,她没有看不出来,我这个肚子很大,那我们就看不出来她是怀孕的对不对,但是际上有没有怀孕的,但是有怀孕的,那这个就相当于这样的效果,你只看到了它的外表对不对,你并没有干嘛,并没有解剖看到它里面的东西,那么没有看到里面东西,你就不知道里边有这个因ner的函数。明白吧,哎,所以PP解析器只是看到了外表,并没有去解析里边的东西啊,只是加载了,所以对于内部函数在内部能不能调用,能调用,但是呢,它是必须在什么,在定义函数的下方啊,可以。
05:17
可以调用对吧?但是必须在什么?在内部函数定义的定义之后对不对?因为PP解析器不会优先加载内部函数对吧?只会加载什么呀,外部函数啊,只会加载外部函数,这就是咱们的内部函数,好了,那咱们来看一下咱们内部函数的这个笔记啊,来这里边他说内部函数在函数外部是否可以调用内部函数可以对吧?不可以直接调用,如果这个调用了怎么样?外部函数之后就可以任意调用内部函数了,对不对?那么在函数内部是否可以调用内部函数呢?可以调用,但是必须在内部函数定义之后调用,为什么?因为PB解析器指会加载外部函数,并不会执行外部函数,所以不知道外部函数中还有什么,还有内部函数对不对?哎,这就是咱们的内部函数啊,好了,那我们了解内部函数以后,咱们说了内部函数主要作用干嘛,就是帮助外部函数完成一些子功能,对不对,那比如说在这里边我们也一样让他去做一些子功能啊,现在我们先刷新一下页面,看他会不会报错,不会报错了对吧?那接下来呢,我们在这里。
06:19
IO1条横线,比如说我想定义一个什么,定义一个统计分数的这么一个函数啊,FUNC方式Co。比如说PP对吧,有Python。有H5。啊,比如说我这三科,那么当我调用这个函数以后,他会给我返回什么东西呢?会给我返回这样一个东西,输出这么一个东西,比如说叫做呃,你的比如PP成绩对吧,是。是什么,是这个多少分,是不是到了PP分呢?哎,是这个,比如说到了PP。分啊,然后告诉什么,告诉我这个是否及格啊,是否及格啊,他告我是否及格是那只要是遇到是否及格,是不是就需要判断了,对不对,那再来还有什么呢?还有这个你的。
07:13
你的这个。Python成绩。啊,是到了PY。Theuant p。啊,一样,是否及格。然后再来一个BR,还有呢,这个叫做IO一个你的。H5的成绩。H5的成绩啊,是到了这个H5分。然后是否这个再给一个BR对吧,然后再来比如说IO一个你的总分。总分是多少分?总分是这个。多少分,比如说来一个总分TTL啊,当然没有这个变量对吧,然后呢,比如说你的平均分。
08:05
你的平均分。是。糟了。比如。呃,AGAVG吧,平均是吧。来这个分好,那现在也就是说当我一调用的时候,我就想让这个函数能输出这些东西对吧,那我外部函数,比如说外部函数我只负责做什么,做总分跟平均分,但是否及格呢,就不需要外部函数来做了,需要什么呢?需要在内部函数对吧?来找一个内部函数帮他完成这个子功能,比如说UCT方式。方式就来个PP,到了PP扔进来,扔进来以后。在这里面可以判断,如果你的pap分数要大于等于60分的话啊,我这里面就是return return什么呀,特一个及格。及格啊,否则呢,我再来一个re return一个什么负及格呗。
09:01
不及格好了,那现在你看我这个PP是不是拿到了PP分,PP的及格与不及格是不是做好了,那再来还有什么,还有Java。不是。PYP。把Dollar Python弄进来,TYT,哎,你只要给了这个分,那是不是最终我一样判断,如果。糟了,PYNPYN。它要是大于等于60的话,那是不是也一样,我就一个什么及格。否则呢,我再来return一个不及格。不及格,好,然后还有最后一个FNC方程式f fun nc t,然后这里面再来一个什么,再来一个H5啊,那同样把H5的这个参数传进来,传进来以后我就来判断,如果你这个H5的分数,比如说H5的这个分数要是大于等于。大于多少,大于等于一样啊,大于等于60,那这个时候我就瑞。
10:01
一个。这个是吧。否则我就return一个。不及格好了,那你看每一个功能是不是帮我对应的完成一个子功能啊,对吧,每一个子功能不能帮我做做这么一件事啊,所以这最后在这里边,那是否及格的时候,我是不是就可可以把它。通通的删掉,给它分割连接,连接什么呀,连接这是PP的,我是不是调用PP函数把这个分数传进来。对吧,它是不是就给我返回及格与不及格了,那这块是不是也一样,Python呢,我就调用py Jon Python函数,把这个Dollar Python呢传进来,对吧,然后还有H5的,我是不是也一样。分割连接。把这个H5调用一下,把Dollar了H5弄进来对吧,然后接下来什么,接下来是不是在外部函数就做这几个,那总分,比如说这里面到了totl就等于什么呀,总分到了PP。Dollar pap家长Dollar什么呀,这个Python吧,在。
11:02
加加起来加到了这个。H是不是这几个分数,哎,好了,总分有了,那平均分呢到了。Eight。AG等于什么呀?是不是等于Dollar了?Totl除以谁除以三是不是平均分呢?哎,那好了,那现在我们来看啊,我来调用SCO,比如说PP的这个分数我们变成多少呢?变成80分对吧?然后拍摄分数呢,可能40分,然H5分数呢,比如说这个60分,好,那现在我们当一调用它以后,你看我的页面中输出的结果。所有。报错方式内必须是一个字符串在我的第47行,那你看一下我的第47行是不是在这里面。这块是什么呀,是不是给错了,哎,好了,那这个时候再来。小心,那你看你的PP成绩80分及格,这个拍摄成绩40分不及格,对吧,H5成绩的60分及格,你的总分是180分对吧?你的平均分是多少?60分是不是就做出了一百八除以除以三是不是60啊对不对?哎,这里面40加六十一百一百加80不是一百八了,那最终咱们来看我的这个内部函数是不是就完成了,帮我们外部函数完成了这么一些子功能啊对不对?哎,这种格式就叫什么,就叫做内部函数啊,当然我们只有在这第一个阶段能用到啊,后面阶段呢,我们会用另外一种方式,用我们的类来去替代它。
12:22
啊,好了,这个是咱们内部函数,那这节课我们到这里。
我来说两句