粉丝2194获赞1.8万

那种无限循环、高低错落的障碍物是怎么做出来的?我是露露老师,今天带你揭秘大神的高级克隆体兵工厂逻辑! 第一步,打造盲盒生成器如果你只会用每隔一秒克隆自己,那游戏太死板了。你看这段代码,三重随机,算法生成间隔随机,连出数量随机,高低造型随机,这才是游戏好玩的秘密。 第二步,开动流水线,让克隆体在屏幕最右边诞生,不断往左移动。噜噜老师敲黑板了!移出屏幕后一定要加上这句,删除克隆体,这就是防卡顿神技,不加他,你的游戏五分钟必死机! 第三步,细节拉满当游戏结束时,怎么让障碍物优雅的退场?停止脚本,加上虚像特效渐变,最后再删除高级的死亡消散特效不就有了吗? 这套万能的高级无线障碍物模板,撸撸老师已经摆在这里了,立刻截图保存去试试!关注撸撸老师,带你做最酷的 scratch 游戏!

好,各位小朋友们,大家好,接下来我们开始讲类和对象中的一个非常重要的一个概念,叫魔术函数。来判断中, 只要是在内中以双下角线开头,双下角线结尾的这样的函数,都是叫魔法函数或者叫魔术函数,它是指的是具备一些特殊功能的, 或者说有一些特殊含义的函数,而且这些函数的大部分情况下全部是自动掉落的,不需要我们人为手动掉落。 那首先先讲第一个,这是我刚刚我们前面提过的 innit 这个函数, innit 这个函数是双下角线开头,双下角线结尾,它这个函数是干嘛呢?是对象的出使化函数。注意不是创建对象函数啊,是对象已经创建出来了,现在要对这个对象他的属性,尤其他的属性对他进行出使化。 什么叫给对象的属性做出始化了?说白了就是给对象的属性来做赋值,所以我把它称之为叫对象的初始化函数。这个阴历的函数在创建一个对象的时候默认被调用,不是我们手动调用的, 那什么时候被默认调用了,回到我们的 python 中呢?就这到二十行代码,第二十行代码一运行,这不创建了一个 car 这个类的对象吗?一创建这个对象的时候,它会自动去调用 index, 但注意 调用音律的时候,其实这个对象已经创建出来了。估计讲到这了就会有人想把火砂锅问到底是吧老是这个对象到底是在什么时候创建出来的,然后才会调用这个音律。那照你这么说,在 是首先把对象已经创建出来了,再去调用,讲一些阴历的这个函数,对不对?你要这样理解是没有错的,因为我刚说了,而且说了不下两次了。阴历的函数是 对象已经创建出来之后,现在要给这个对象做出实化了,那就会自动去调用我们这个数字,自动调用阴历的函数, 心动吗?老师,那到底什么时候?那,那对象什么时候创建出来呢?这叫讲到另外一个魔法函数了, 这个魔法函数后面是我单独给他加的一个内容,本来是应该后面加的这个魔法函数,我告诉大家是什么?小游戏六里面参数不要动它。小游戏六 为什么不懂?等会我后面会讲到的。这其实这些魔法函数全部都是负类的,都是乘写,所以乘写函数的参数不要动啊。这里面我们就打印一句话,函数一一被执行,就会创建 卡对象卡这个类的对象,当然它创建其实由负类,由负类的,你也有函数帮我创建的,所以后面有一句话是千万不能少的,如果少,这个对象并不会被创建啊,叫 return。 这个后面再给大家说,这叫 super, 什么? super, 包过去了,包 super 叠小号线六, 说白了是调负累的小号线六。这个函数今后 x 以及心心 p w x, 明白吗?这样子是这样,这句话后面我再讲,好吧,先你先。总而言之,你先知道这句话必写,不写的话对象并不会被创建出来。好, 那在这个里,在这个函数我们也会先用顺序的,我们在这也得打印一下, ctrl 开始出手哈。对象,我们看这两句话谁先打印好不好?看,是先打印这句话还是先打印这句话,好,我们把这个代码先部署一下,我们单独创建一个,其实你不用带那么旧 就执行这个,第五、二十五行就给了,来,我们来运行一下,走这个参数,不用这个地方传太多了,就传这一个就给了。好,来走,来大家看一下,那你发现打印了两句话,对不对?第一句话是先打印的是创建卡的对象, 创建卡的对象不就是在这打印的吗?那就表示想要选六这个魔法函数先被执行对不对? 再有一个叫开始出式化卡对象,阿丽就这样。好,我在这里给大家说一下,他会我们的任何一个类的实力,任何一个类的对象被创建,他是先调用这个函数, 调用这个函数其实哪一行代码才是真正创建这个类的类的对象?是这一行代码,好吧?这一行代码才是真正创建我们类的对象。 传染之后并且给你会,会返回 return 会给你返回,返回之后其实就得到了当前类的对象,有了当前类的对象,然后才才会是掉一直自动掉的, 掉阴影的时候他把 self 会自动传递来传谁就是传二十二行这句话返回的刚刚创建出来的那个对象。 cf 就是 刚刚创建出来了这个类的对象本身好不好,同时也会把其他的型,他像比亚迪、汉中型轿车这些型他也一并传进来。之后接下来时尚是对当前刚刚创建的这个对象的所有的属性来做出实化,第十行、 第十二行以及第十四十四行都是做初识化了,这就是我们的这个 in 的 函数,好吧,在 in 的 函数的讲的过程中,我顺便也把是往下滑线六这个函数讲了,在下滑线六这个函数其实是属于类函数。 好吧,总,我后面我们要再讲的。好,我们继续回到这个阴历函数,阴历的函数它是自动调的,不需要手动调,它在创建一个对象的时候默认会被掉掉容。阴历函数的第一个参数一定是 self, self 这个参数不需要开发者传递, 它是手动传,而不是自动传递的。 python 解释会自动把刚刚创建的对象传递过去。 好,这是第一个密的函数。接下来我们再说第二个 str 函数,当我前面的下凹线尾说 str 函数前面是双下凹线,后面也是双下凹线,它也是一个未来经常用的一个魔法函数,或者叫魔术函数。 它什么意思?它是当有有代码 branch 输出一个对象的时候,就会自动去调用这个对象的 str 函数, 并且返回这个 str 函数的返回结果。好吧,并且这个 str 函数的返回结果会自动的通过 print 函数进行输出。那如果你还没听太懂,没关系,我们回到这个拍唱中, 现在我们是没有 s 小 号线 str 这个魔法函数的,没有对不对?那没有,我以后一不小心我会打印一下这个对象 c e 会不会,未来肯定会,这把 c e 输出一下, 一输出,输出了这么一堆东西,这一堆东西就是由二十六号处理器 c 一 来输出的,他输出了当前这个对象所属的类,以及这个对象的内存地址,当然这是十十六位的一个内存地址, 明白吗?那为什么会输入这个是因为负类的 str 函数就这么规定呢?所以这个我可能很多同学不喜欢,这不是我们想要的,那怎么办?我们这时候就需要定义自己的下角线,下角线这双下角线 str, str, 再加双下角线这个函数, 那这个函数一定有一个 return 的 返回结果,这个返回结果是自我创的,那这个返回结果,所以你返回什么?好不好?总而言之,它返回的内容就是 print 函数未来要输出的内容。好吧?好,我先把这个注示写一下,它是一个 s d r 魔法,对, 它是以后只要有 print 后面接对象,那么则则会自动调用 sdr, 并且打印 sdr 函数的返回值。 如果你这里面没有任何返回值,假设你这里面就返回一个空,返回一个空字幕状,那么它打印的也是一个空。也就是说等会我们二十九行打印完之后,不会出现这个了, 只会出现空自我创。来,我们看一下,它会出现一个空的自我创。左眼,这你打印什么?你输,你这边返回什么,它这个对象就打印什么。二十九行打印这个对象,它就打印什么。看它打印 abc, abc 不 就是你这个 s d r 函数返回的结果吗?好,所以以后我们为了输出这个对象的时候 非常方便,我会干嘛?会把这个对象的一些属性啊,按照一定的格式进行输出,比如说我们会输出这么一个组合, f 汽车的品牌是我们要访问这个,它的属性对不对?千万记住加 self, 你 不能说直接是 brown 的, 不行,这个 brown, 那 到底是谁的属性? 是 self 当前这个对象的属性。好情号是报号 四 f 点 type 嘞,汽车的类别?是啊,括号四 f, 点开了个人, 这就返回了一个完整的字状,对不对?这时候当你二十九行打印这个某一个对象的时候,打印这个 car 这个对象的时候,阿俏他就会输出这么一句话,这句话就别人依靠打印。 c 这个对象原来是比亚迪这个品牌的车,型号是汉,是属于中型轿车,别人一看就非常清楚了。 这就是一些奥线 s、 d、 r 这个函数的特殊的含义,知道吧?还有一个,还有一个是什么 d、 e、 l 函数?答案,前面的双下双下角线以及后面的双下角线,我没有读出来,是当删除一个对象的时候, python 解析器会自动掉的。 好吧,那我们把它写写一下,小一些。奥线 d、 e、 l。 我 们打一句话说,认真开始删除对象, 这没有符号值,你加符号值也没什么用。删除对象,但你可以写其他代码,比如说你删除对象的时候,你想做什么事情,你发个通知你,还是啊记录一条日记等等,你都可以在这里头写好不好? 那他什么时候会自动调用这个 d、 e、 l 函数?是当你删除你通过这个 d、 e、 l 表达式来删除 c e 这个对象的时候,他就会自动掉。但如果你说老师我不写三十四号了,不写三十四号,我告诉你也会掉,为啥了? 当然后面我们要讲的是派锁内存管理的时候,我会讲这个程序执行完之后,会自动把所有的变量都清空。 c 一 是不是个变量?是的,这个变量是一个卡对象,他也会清空,清空的意思就是删除,所以其实你不加他,当程序执行之后也会有这句话,开始删除对象,你加他,那他只是 提前删除 c 一 这个对象,他就会自动调用 d 这个魔法函数,各位听懂了没有 啊?所以当有人去删除我这个对象的时候,我这个魔法函数就会自动被执行。你代码里头写什么随你,比如说你写通知的代码,你写发消息的代码,你写记录日的代码,都可以自己看着办。这几个就是未来 比较常用的,其实我在阴历的函数里面加了一个叫下腰线六,那个函数加起来一共四个,这几个是比较常用的魔法函数,希望大家知道每一个魔法函数它的特殊含义是什么意思,什么时候掉 好不好,记住这一点就可以了。好,这节课我们先到这,谢谢大家,再见。记得点赞关注哦!

好,各位小伙伴,大家好,接下来我们开始进入到 python 的 面向对象编程,那前面我们讲过什么叫 python 的 面向函数编程?在写代码过程中,一切皆函数,而且函数可能可以作为参数, 函数还可以作为返回值,那像这样子的一种编程方式,我们称之为叫面向函数编程。面向数编程中最重要的其实就是高级函数,对不对? 好,那今天第十节我们要讲的是面向对象编程,那反过来,那其实一切皆对象,把所有东西都看成对象来看待, 那我们在写代码的时候,首先要定一个类,再通过类再创建一个对象,以此类推,未来我们操作的时候都是基于这个对象来进行操作,一切皆对象,这就是。呃,两种不同的编程范式,其实就一,大家记住两句话就可以了。第一个,一切皆对象,面向,面向对象编程就是一切皆对象。 好,那既然如此,我们今天讲的面向对象编程要重点掌握两个非常必要的概念,一个是类,一个是对象。那类是什么呢?就是对一系列具有相同特征和行为的事物进行一个统称,这就是类。嗯,每粒子我们说水果 是不是一个类?对,没错,我们说苹果是不是也是一个类?对,是一个类,因为这时候我在说苹果的时候,可能我们只是在脑海中抽象出来了苹果这个概念,我们觉得苹果可以吃,苹果成熟之后可能是红色的, 对不对?这就是苹果的一些特征,那苹果有什么行为?苹果他可以被吃,或者说苹果他可能成长的过程,有一个成熟的过程,有一开始是青色的,慢慢变成红色的,只可以是他的行为。 那我们在脑海中描述苹果这一类事物的一个抽象的描述,那我们把它称之为。刚刚我脑海中这几种抽象的描述,我们就把它称之为叫泪。 那什么叫对象呢?对象其实就是基于类创建出来的具有真实存在的事物。比如说我刚刚在脑海中描述的这个苹果叫类,那现在我真的拿这一个苹果摆在我桌子上,现在我指着我摆桌子上这个苹果,那这个就是叫对象。 好吧,我相信这样描述了,我觉得大家应该了解了。那既然如此,我是不是认为累就是一个抽象的概念?对象是实际存在的概念,可以这样理解吗?可以,完全没有问题啊。所以一般来说累了是什么?是我们,你可以理解为是脑行想象出来的概念。 我们未来写代码的时候,那肯定是要思考的,肯定是要对我们写代码过程中的遇到的一些东西来进行抽象。抽象的目的是为了描述出他有什么样的特点,他有什么样的特征,他未来会有什么样的行为和动作,是不是啊?这就是描述,他 描述完之后呢,可以把它写出来。那我有了这个类之后,我再创建一个实实在在存在的一个东西,那就叫对象。 比如说接下来我们要定义一个类,那那定义一个类,他有这么几个语法,大家要搞清楚。首先他一定是 class 开头,后面接类名,类名一定要满足我们前面讲的标识符的命名规则。当然他有一个要求,首字母一定大写括起来,括号里面写什么呢?继承,写他的继承类,写他的父类, 继承了,我们后面下一节的时候才会讲,不着急,我们今天只讲这个面向对象啊。嗯,接下来什么号后面?首先后面接函数 属性,一般来说是什么?是这个类所描述出来的那个事物的一些特征,那函数是什么?是这个类所描述出来的事物的那些行为和动作?这就是这样定义了一个类。 有了这个类就可以创建对象吗?对,就可以创建对象。好,我们先把这个类啊创建出来,好,来回到我们的排藏中,我们还是在同一个来新建一个新的 p y 文件。 三十四,我们叫定义好,比如说我现在要干嘛了?我要描述一台,描述一台汽车,那我在脑海中得抽象出一个类出来, 这个类就是对这个汽车这个事物的一个抽象的描述。那我定一个,首先是 class 这关键字开始,后面就接类名, 那你想想,我接下来是描述这台汽车,对不对?那我应该取一个什么类名?根据之前我们讲的建名之意,我们是不是应该取一个叫 car? 好, 描述的是一台汽车。好,后面接冒号, 冒号后面接。我们要开始写什么了?写它的属性,那如果是对象属性,当然现在可能大家还没听懂,没关系,我们这里就先不说这个属性的事, 如果我要是定义属性,我在这定义,我怎么定义?你想想,我这个属性其实是来描述这个汽车的一些特征的, 那我们就想想汽车有什么特征?汽车是不是都有品牌?你甭管什么车,我在街上看到一辆实实在在存在的车,它是不是有品牌?所以你看,我就写 self 点 brand 就 brand, brand 就 品牌的意思好不好?一开始了我让它等于那 啊?一开始这就定义,这就定义了一个属性,这个属性谁的?是 car 这个车的来这个车有个手印就代表什么品牌?汽车的品牌写的是汽车 品牌,那是属于汽车的一个特征之一,它可能还有其他的特征,比如说除了品牌之后还有型号, 比如说这辆车是比亚迪的,那型号是什么型号?可能是汉,也可能是唐,也可能是宋,还有可能是宋 plus 的, 这些是型号的名字。所以任何我在街上看到一辆汽车,他应该还有一个特征,就是型号之类,叫型号也等呢。 那么还有什么?还有这辆车它到底是什么类型的?车?是 suv 的 类型的还是普通轿车类型的,对吧?轿车类型的还是 suv 类型的?那我们再定一个属性,这个属性叫卡拉格瑞,开一个类型的意思。好,一开始也等于, 那我分别这三个主题,分别用中文描述一下,是这样,第二个表情号,汽车的 第三个就是汽车的类型,包括什么?比如说是 suv 还是轿车?轿车到底是哪一个? 你看这就是我是不是?我这样写是不是可以描述一下我们脑海中想象的这辆车它的一些特征吧?当然了,还有其他特征呢?根据你需求,你想写多少就写多少, 懂我意思吗?你说老师为什么只写三个?我只是写三个,来举个例子而已。好吧,你可以未来写四个、五个、六个、七个、八个、九个、十个都行。 ok, 好。 这辆车还有什么?大家,这辆车还有行为,车有什么行为?你想想车有什么行为?我们在脑海中描述一下。哎,车是不是可以自己往前开?那他是不是有一个 round 这样的一个行为?这个是个行为,其实就好比是我们接下来定一个功能, 他有往前开的功能,对不对?功能不就是我们之前讲的函数吗?就是函数,这个绕函数 就是车的行为。好吧,那这个绕函数做什么事情?我们就打一句话,因为我这但是不可能把所有里面代码全部写完,我们这样想,这样开起来,你看这辆车他的特征有了, 他的行为有了,是吧?那我通过定义了一个类,我抽象的描述出来了这辆车,啊,不是这辆车描述出来了汽车这个概念, 那这样子的一个类,这样子的一个东西。我们说鼠标选中这个东西就叫类啊。这个类实际上就是一个抽象的描述,描述什么?描述这个事物他的一些特征,以及他的一些行为。他特征可有很多,他的行为也有,也可能很多。我这里分别是三个属性来代表特征。举个例子,用一个行为来代表什么? 来代表他的,用一个函数来代表他的一个行为。老师,为什么你的属性定义在这?后面会给大家说的,不着急。好吧? 不着急,其实属性分为两种,一种叫类属性,一种叫对象属性。我现在这里写的是对象属性,他不管类属性还是对象属性,其实都是什么,都是描述你脑海中想象的那个东西,这个事物的特征。好吧,好,那这就是一个类, 那有了这个类我们就可以做什么事情了,我们就可以创建这个类的对象。就好比是我有了这么一个类, 那我未来在工厂中我就可以生产,或者说我可以买一辆真正意义真正存在的实际存在的一辆车。甚至有些人这样比较,这样类比一下,他觉得这个类相当于是设设计一辆汽车的图纸, 因为确实设计一辆汽车的图纸是非常详细的描述,以及它的各种功能,对不对? 在工厂中我就可以可以根据这个汽车的图纸来生产一辆汽车,我们这个类其实主要目的就是为了创建对象的,类的主要目的就是为了创建创建对象的。好吧,好,那回到这里来,我们刚刚已经定义好一个类了,这里要注意,必须要满足标识符的命名规则, 同时要遵循大坨风命名规。命名习惯什么意思?你在描写一个类的时候,你这个类如果有两个以上的单词, 那每个单词的首字母都得大写,比如说叫 my car, 我 要这样子写,哎,对,你看 my 是 第一个单词首字母大写, car 也是第二个单词首字母也是大写的,知道吧?这叫 my car 啊,这也是一个类的名字, ok, 总而言之,你一定得有 按照这个非常标准的命名习惯来。这个习惯我之前我强调过很多的,你要千万注意。你说老师我不按这个规则了,好像也没报错,对不对?他无非就是一个波浪线而已,你感觉没什么对不对?当我说过,别人看到你这样代码,他会觉得你这个人不是一个合格的程序, 这个就比较严肃了,或者说比较严厉了,评价你不是一个合格的程序员,说白了其实就是给你整个程序员这个生涯打了一个很重要的感叹号或者问号,其实是对你整个程序员的生涯做了否定,你未来去面试也好,去晋升也好,你升职加薪也好,其直接一票否决了,你知道 你这个很重要啊,又扯远了。好,我们接下来开始要创,根据这个类,我们要创建一个类的对象,那怎么样创建这个类的对象?只要有了这个类之后,我就可以根据这个类的类名后面加个小括号,这样就可以创建类的对象。看,我们叫 c 一, 这个叫 c 一, 实际上是一个变量名字,对不对?那么我们我选中的这一行代码就是创建了一个 car 这个类的对象, 这个对象创建了出来之后,我赋值给 c 一, 那这个对象变量的名字就是 c 一 了,它就是一个事实, c 一 就是一个实实在在的一个对象,一个属于 car 的 对象。好吧,老师,那我是不可以再创建第二个,对,叫 c 二,可以吗?可以 啊,以此类推,你还可以创建很多的对象,这就是对象啊。未来,我我我在写其他代码的时候,我就基于这些对象来进行操作,比如说我想要汽车开起来,那我就要 c 一 点 run, 哎,这表示 c 一 这台汽车开起来了,那我想要 c 二这台汽车开起来,我就 c 二点 run。 ok, 这未来我们写代码就是基于这个对象来编程了,所以整个这个叫面向对象编程。刚刚我们这个就叫面向对象编程了。那老师,面向对象编程中难道就没有函数吗?有,不过这个函数啊,在类的里面对不对?不会单独在外面定义一个函数了。 好吧,因为它对基于我们这个 class 这个类啊,做了缩减,也没看十三行这个函数。 ok, 好, 这就是面向对象编程中的类以及对象 啊。好,我们这节课先讲到这,下节课继续。后面还有很多东西要讲,包括类的属性、成员属性之类的。啊,谢谢大家再见,记得点赞关注哦。

好,各位小伙伴们,大家好,上面呢,我们已经创建好一个对象了,是吧?那创建对象其实也称之为叫实力化对象, 其实就是把这个类实力化出来,也称之为叫实力化对象。那创建这个对象或者说实力化这个对象,我们有要不要?哎?把这些属性来进行赋值是有必要的,那这里呢,我们就需要去学第一个概念就是什么?就是 cell, 学完这个 self 了,我们就可以给这个对象的属性来进行赋值了。好, self 是 什么意思?刚刚我们在这个代码中用到了,是吧?来回到我们的这个叉中, 大家看在哪里用到 self, 在 这,而且我们在定义的时候用到了。好,我在这里给大家写个注,是 self, 其实就是写在上面, self 就 代表代表当前 对象本身,或这里没写错,或者你可以理解为当前对象时,当前对象的实力本身实力。 好,我给大家解释一下,其实当我在执行第十八行代码的时候,当我在执行十八行代码的时候,他就会创建出来了一个对象的实力,创建出来这个对象的实力叫 c, 一 创建完出来之后, 他才会调用 in 的。 你要注意这一点,是这个对象已经创建出来了,然后他才会调用 in 的, 而且这个 in 的 函数是自动调的, 我告诉大家是自动调的,不用我们调,我在什么时候调呢?就是十八行,这这我选中这一行代码一创建就给一,一执行就会调用 in 的, 其实在调 in 的 时候,他这个对象 已经创建出来了,创建出来之后它会自动把刚刚创建出来这个对象的作为参数传给应用。传给了谁啊?传给 self 这个参数,那么 self 其实就代表当前你刚刚创建出来这个对象的本身。 找吧。好,然后 self 点 brand, 就 表示当前这个对象有一个汽车品牌的属性,给它赋值。这句话其实就是赋值了,不过这里赋值全部都是负的,人看到没?那如果说老师我想在创建这个对象的过程中, 我想把一些属性的值传进去,怎么办呢?可以的,就通过。那我们就要修改一个函数,在这个位的函数里面我们就多加一些参数,比如说我再传一个前参 brand, 再传一个开始念,再传一个 category, 那 我就可以写什么?我就可以写 self 点 brand 等于 brand。 好 吧, self 点 tag 呢? cat name 等于 tag name, self 点 category 就 等于 kag。 好, 很多同学不太明白, 那你,你同样都是邦的,你邦的前面加了一个 self 点,那这个邦的就代表什么?就代表当前这个对象的属性。 注意,你把前面加了 self 这点,加了这个东西,那这个 brand 就 代表是对象的属性。那,那这个 brand 呢?这个 brand 它只是个行餐而已,还可跟我们这个对象没有什么关联, 这里要注意。好吧,为什么?因为我刚刚说了, self 代表当前对象,对吧? self 点,那就肯定是当前对象的什么什么?对吧?当前对象的 brand 属性,当前对象的 tablagon 属性,当前对象的 category 属性。所以这三行代码是什么意思呢? 这三行代码我给大家解释一下。先从第六行开始讲起,第六行就是在这个函数调用的时候,我们规定了三个行参,我们叫函数的参数,这个叫位置参数, 那其中有一个形态我并没有把它算,没有把它计算在内,是这个 cell, 这个这个这个参数并没有把它计算在内,这是因为是由我们的 python 解释器自动传进来的,不用我们管的,不需要程序员管的,知道吧?所以我们不用把它计算在内,它比较特殊。 那么这这三个呢?是需要我们程序员在写代码过程中,你需要手动传进来的,传了这三个形态,哎,这时三个形态跟当前这个 car 的 对象有关联吗?还没有关联。 那他执行第八行代码的时候是什么意思呢?是把你传过来的这个 band brand, 把传进来的这个 brand 赋值给 cell 点 brand 属性。来。这句话呢,我再讲一遍,我讲慢一点,你在我们在 在调用音点数的时候,需要传三个行餐,其中有一个行餐叫 brand, 那 这个行餐呢?和我们当前这个对象暂时是没有关系的,那当他执行第八号代码的时候呢,就会把传过来的这个 brand 的 行餐 参数的值赋值给嗽当前这个对象的 brand 的 属性, 这个时候当前这个对象的 brand 属性它就有值了。所以第八行其实是给当前这个对象 brand 属性赋值了。赋哪一个值?那你要看参数传进来的这个是什么就是什么。 好吧,那第十行代码是什么意思啊?给当前这个对象的 typeahead 属性来赋值了 不?谁的这个值是什么呢?那你要看你传进来是什么,第十二行也是依次累退。好,那这样的情况下,我们就需要在在十八行这里,因为十八行是创建一个对象吗?那创建对象的时候,你指定的需要有三个餐,详餐要传过来,所以你在创建这个对象的时候,你就需要传餐, 一个个传少一个都不行,因为这是必传参数,因为它是背置参数嘛。好品牌,比亚迪,对吧?型号是,我们叫汉,然后呢?这个类型他汉兰大家都知道,轿车对吧?轿车叫中型轿车,对吧? 好,然后我我再创建第二个对象,也可以传不同的,比如说我传一个是这个大众,一汽大众,这是他的品牌嘛?对不对?型号?迈腾,对不对?这也是那类型呢?也是中心吊射。各位,这是创建两个实力, 创建两个时历,我们一一我们,我们给大家解释一下十八行代码。十八行代码你发现没有?它在创建这个 car 这个类的时的对象的时候,它传了三个参数,这个三个参数其实分别对应 这个形态,然后这个号呢?对应这个 type line 啊,因为它是按照顺序嘛,依次传过来。 adri 对 应的这个中型轿车, ok, 那传到 int 函数之后呢? int 函数呢?就会执行里面的代码,里面第八行、第九行、第十行,第八行,第九行,第十行是什么意思?给当前这个对象的 brand 属性赋值。赋了一个什么值呢?赋了它这个值,这个值呢?是行餐,行餐是谁传过来的?比亚迪传进来,所以 self 点 brand 值,实际上就是等于比亚迪,好吧?呢?以此类推,好吧,好,那这就是 self 这个这个关键词,这其实 self 了啊, 本质来说它不叫关键词,好吧,它不是关键词,在这里我刚刚说错了,但我实际上也是特意说错,为什么呢?因为接下来我要讲这个,我告诉你,你不叫 self, 也可以。好,比如说我叫 self, 我 们来下划线, self 可以 吗?可以是,那这里都得改, 对不对?这这个这个形态的名字是可以随便写的好吧?是可以,是理论上来说可以随便写的。那为什么随便写?怎么会出现一个波浪线呢?又出现警告了,就是违反 p 一 p 八规则,知道吧? usually 什么呀?通常 usually first prime 就是 first prime 是 第一个,当我们函数的第一个,通常情况下,函数的第一个参数的命名应该叫 self, 看到没?就违反了 p 一 p 二规则,就是我们经常说的编程习惯, 这是就是大家伙们习惯了从拍档程序,习惯了第一个函数。啊,不,函数的第一个参数,大家应该看什么函数?这是这是,这叫成员函数好吧,或者叫对象函数,这个函数它的第一个参数呢?它就叫命名,最好就叫 self。 它代表什么意思呢?代表当前你刚刚创建出来这个对象本身,好吧,你用其他名字也也不是说不行,也是可以的。 ok, 这就是 self 的 本质,有了,有了 self, 我 就可以给当前这个对象来复制了。 说错了,给当前对象的属性来复制了。比如说点 self, 点 brand 大 夫,点 time play, self, 点 category 来进复制了,那你我未来还有很多的都是可以通过它来进行复制。那老师十次性这个 self 也是代表当前对象本身吗?对的,没有错。 总而言之,大家在内里面,未来在内里面看到了 self, 好 吧,就代表当前这个对象本身。这就是关于 self 这个 这这个非常重要的一个词的一个解释。好吧? self 什么意思?当前对象。好,那刚刚我们讲的这个属性叫什么属性呢? 其实叫对象的属性。好吧,那刚刚我们看到这些函数也叫什么函数呢?叫对象的函数,所以接下来我们就要就要给大家去谈什么叫类属性,什么叫 类属性?在后面什么叫类属性,什么叫类函数?以什么叫这个对象属性,或者叫什么叫对象函数。那现在呢? 我们先看这在类的,在类的外面去访问,以及在类的里面去访问,这什么意思呢?就是当你当你这个对象的属性你想要去用的时候, 你在类的外面怎么去用,在类的里面怎么去我们类的外面?先不管,先不着急,我们先看在类的里面看。这 如果你有对象属性,那么你在类的里面怎么用呢? self 点什么?什么?好吧? self 点属性名字,因为这是属于对象属性。 cf 点函数的名字,在这个函数呢也是对象的函数。那我回到代码中给大家解释一下,刚刚我在第八行、第十行、第十二行定义的这三个属性其实都是属于叫对象属性,说白了这个属性是属于对象的,就这意思。 好吧, ok, 我 我再给大家解,我再在这这加个就是 brand, 就是 这三个 brand、 type、 line、 category 都是对象属性, 为什么都是对象属性呢?其实你就看这个属性前面是什么,这个属性前面是 self 点,很明显了就是对象属性,因为我说了 self 就 代表当前当前对象本身, 那对象点属性性,那不就是对象的属性吗?属性都是当都是代表当前对象的属性, 那对象属性其实就表示这个属性是属于你这个对象的。好吧?属于你这个对象,属于你这个对象。好,那我在在类的里面去用到这些属性的时候,你直接使用 self 点什么什么就可以了,比如说我在这我需要用,我需要干嘛呢?我需要把这个 汽车的型号和品牌打印出来,那我就 print f, 然后呢? self 点品牌 brand, 好 吧?然后加个杠,我们再括号括起来,我们使用 self 点 叹号号的型号。好,那十六号啥意思呢?十六号的意思,其实我就是要把当前这个对象的 brand name 属性的值,以及当前这个对象的 type name 属性的值把它输出出来, 那我要访问,我要拿到这两个对象的属性值,那我就是 so 点什么? so 点什么知道吧? ok 啊,包括函数也是一样,像我们这个 run 这个函数是属于什么函数呢?它是属于对象函数,对象函数也叫成员函数,其实其实还有一种说法叫成员,其实我们对象属性还有一种说也叫成员,成员属性,成员啊,这里还有一种说法 叫元成员属性和对象属性的是一个意思。那为什么我可以判断出呢?这个 run 这个函数它是属于对象属性或者成员函数呢?重要原因就是因为它参它的第一个参数是 self, 所以 各位你发现一个特点没有,只要是跟 self 有 关的,几乎都是什么,都是什么,都是属于对象的属性,要么是对象的函数。 好吧,好,回,再回到文章中来,就是在如果,如果对象的属性和对象函数你在类的里面是使用的时候,直接 self 点,如姓名以及 self 点函数名就可以了。如果你在类的外面去使用的时候呢? 举个例子,什么叫在类的外面?请问第二十行代码是不是在类的外面?当然是的,比如我在这儿我需要印一下当前这个 c 一 这个对象 它的属性,它的什么属性呢?它的品牌属性要怎么写? c 一 点变什么点? brand 品牌属性。 所以在类的外面去使用的时候,对象名加属性名,对象名,点加属性名,然后一样的函数的话呢,就是对象名点函数名,这个是是,这个就是访问访问对象 c 一 c 一 的属性。好吧,那调用 c 一 这个对象的函数呢? 那就是 c 一 点 wrong, 这函数调用对象的在内的歪向什么特点?在内的外面都是通过对象名加属性名,对象名加函数名。但我这里面都是访问 c 一 这个对象的,那 c 二这个对象的呢? c 二这个对象的没有访问吗?那如果你想访问也是以此类推的,好吧,好,我们来运行一下。走出来了,打印的是比亚迪, 对不对?然后再调用 run 这个函数,调用 run 这个函数,说白了其实就执行第十六行代码,因为你掉了 run 这个函数嘛,就会进到 run 这个函数里头,执行第十六行代码。十六行代码打印的不是比亚迪汉嘛? 对不对啊?然后有一个开起来。对,那如果我调用 c 二这个函数了, c 二点点 run, 他就会打印的内容不一样了,他会打印一汽迈腾开起来,对吧?前面呢是比亚迪汉开起来,后面呢是一汽一汽大众迈腾开起来。 刚刚你现在更更好理解什么叫对象的属性和对象的函数吗?这是两个 c 一 和 c 二两个不同的对象, 当他都是调用 run 函数的时候,他他打印的结果是不一样的,原因是因为这个 run 函数以及里面的属性都是属于当前这个对象的, 那 c 一 这个对象的属性和 c 二这个对象的属性他就不一样,知道吧?这两个对象的属性不一样,所以 run 这个函数调完之后出现的现象或者结果肯定也是不一样的。好吧, 所以你看,所以我刚刚说了,对象属性是属于,是表示当前这个属性就属于当前这个对象的,它不属于另外一对象, 好吧,函数也是这个这个函数 round, 这个函数就属于 c 一 c 一 这个对象的,不属于 c 二的,当然 c 二也有这个 round 函数,知道吧?好吧,你要明白这一点。 好,那我们这节课先讲到这个主要讲什么了?讲 self 这官字,以及这个对象的属性和对象的函数怎么去用它怎么去呃,给它赋值等等,甚至包括怎么定义,这里都讲了十五行是怎么样定义一个函数吗?好,谢谢大家再见,记得点赞关注哦。

好,各位小伙伴,大家好,我是老肖,接下来我们继续讲面向对象。前面我们讲类属性,要注意类属性只能是通过类去修改, 如果你是通过这个类的对象去修改,其实并不是修改,而是给这个对象重新增加了一个新的属性而已。 好,接下来我们继续第四个,类函数和静态函数,你看函数也分为,呃,类函数,其实还有静,还有静态函数,还有对象函数啊。我们先说类函数,前面我们讲的那些函数,我告诉大家全部都是对象函数,也称之为叫成员函数。 那类函数需要使用装饰器,挨着符号是啥?是装饰器,辅助装饰器。后面马上就要讲了,不着急。总而言之,你你就知道啊,你暂暂时了解,这个装饰器就是一个标记。 好吧,那通过艾特符号加 class mess 来标识其为类函数啊。对于类函数的第一个参数,必须是当前这个类, 一般以 cls 来作为第一个参数的名字,当然了也可以对它进行重新命名。习惯上我们都用 c i s, 是 这样的一个函数,类函数。 好吧,那后面我们还有静态。不着急,我们先讲这个类函数来回到我们的拍档中,在拍档中我们这样的还是换一个,别跟那个换了一起了,换一个 别名叫类类三十六,还有进透和回撤, 我们还是定一个定下来,我这个类叫还是叫 percent。 无所谓啊,我原来我们一直在讲的,比如说下面 indy 的 像这样的一个函数,这也是一个函数,这个函数是什么函数? 成员函数,或者叫对象函数,比如 self 点 n 恒恩,这是给当前这个对象加上了一个类名属性,并且被它复制了。好,那这个函数跟大家说这个是念,或者叫对象哈,也叫实力哈。 好,把所有的名字都给大家写一下。好,那还有种情况,各位,我们这样子定一个,比如说每个人了,像每个人有一个什么样的好行为了?比如说每个人有一吃吃饭的一个行为。 好,就说出一句话,画括号,三号点内正在吃饭。好,我就打印这么一句话,那这个函数也是属于成员函数或者对象函数以及实例函。大家发现成员函数、实例函数以及这个对象函数它有什么样的一个特点没有?首先是在内的里头,第二 他的第一个参数,注意他的第一个参数 self, 后面的参数就无所谓了,你想是什么就是什么,只要第一个参数一定是 self, 那 这样的一个函数就叫做对象函数,或者叫实力函数。 那刚刚我我我给大家讲的这个类函数是什么意思呢?类函数样子,比如说每个人都要工作或 它的第一个参数就不再是 self 了。好,我们打印化每个人都要。同时这个函数上面加了一个装饰器 at, 是 这个装饰叫什么?叫 natas method。 那 么当前这个函数就是属于类函数。类函数有两个特点,第一个特点,第一个函数的第一个形态,后面有其他场所无所谓,比如后面我还有其他场所 other 啊,都可以的,或者说我还有其他 number 等于一百,像这样的这个有缺失参数的,缺失值的一个参数都是可以的。为了后面的参数的符合我们之前讲的那个 函数中参数的那些特点,有比如说位置参数,缺失参数,还有建值队的参数,还有不定长参数都可以。总而言之,第一个参数是 cls, 一 般用 cs, 我 换其他名字其实也行,知道这是第一个特点 好吧。第二个特点,这个函数上面得有个注册器来标识,当前这个函数是属于叫 class, class 类, next 是 函数的意思,所以叫类属性。有了这两个特点它,它才能叫类数,类类函数,类函数 啊,这就是类汉一样道理,这个类函数也是所有的对象都能够拥有的好吧。当然这个函数还是属于类的,只是所有这个类的这一项都可以共同拥有啊。那这个类函数我们怎么去雕一样呢?首先我们先创建一个 p 一 percent, 旁边一个张三,他的成员函数怎么调?这个我们之前讲过的,在外面就通过这个变量的名字,比如说有一个,那你就这样跳就可以了。那类类函数怎么调法?两种调,两种,跟我们之前讲的类属性的访问一样,两种动。 第一通过 p 一 点,通过看通过对象的变量名字点 worker, 这样也可以调,但 worker 这里面该传参。哦,这里面其中有一个参数传的是 arthur, 是 必要传的, cs 是 不用传 arthur, 我 就乱传一个把一个空的 abc, 但这里你可以打印一下这个 alt。 好。 嗯,还有一个方法就是通过类名去调 work e, f 这两种方法都行,一个是通过这个对象去调,第二个通过类名去调,你看是不是每个人都要工作,是不是打印了两次啊?每个人都要工作打印两次,前面张三在吃饭是是一起函数打印的。 好了,搞定了,这是类函数的调用函数,就这么多函数的定义函数不能去,不能去随意修改的,已经定义好之后,你就不能修改了,我们接下来继续。我们还有一个要讲,就是静态函数跟我们的类函数又有点不一样了, 静态函数需要通过一个装饰器叫 static method 来进行修饰的。静态函数这个方法也叫函数,在加倍中,我们讲方法在 python 中其实叫函数,这个我应该读过了,叫定义函数,既不需要传递类对象,也不需要传递实力对象。 好吧,也就是说,你第一个行餐是不是 excel, 是 不是 crs? 无所谓,第一个行餐没有任何要求,你根据你的需求来,你这个静态函数需要传什么行餐你就传,没有传行餐,那你就什么参数都不需要。好啊 好,接下来我们来定义一个静态函数,比如说每个人都可以行走,我定一个 run。 好, 跑起来,参数,我,我,跑起来这个词,我,我,这个函数不需要任何参数。来一句话,每个人,哦, 跑起来,这个没有定任何的一个行参,但上面我要加上一个叫 static method。 好, 这就是一个静态函数。静态函数呢,也有两种标法,静态可以摇种,第一个可以通过对象 p e 点啊,有一个软,还有通过类名 python 点软。那这样这两种方法是不是跟我们的类函数的调用是不是差不多,效果是一样的?对,是一样的。 那既然是一样的,呃,为什么还要搞这么一个静态函数了?还是有点区别啊。静态函数你看发现没有?是不需要有 self, 有 class, 还有当前这个类, c r s, 是 吧? 所以大家看一下,这后面有,我写了一句话,特点,当函数中既不需要使用实力对象,也不需要使用类对象的时候,也不需要使用使用这个实力,也不需要类的时候,那我们定义的这个函数就把它定义成静态函数。 这种静态函数我们发现一个特点,他其实跟当前这个类无关,跟当前这个对象也无关,是不是只是你这个当前类以及当前的对象都可以用? 我,我在写这个函数的代码的时候,不需要用到当前类,也不需要用到当前实力,所以我定义的这个函数,我就把它定义成静态函数。 那静态函数原因是因为它不需要做任何的 cell 法,也不需要传 cs, 也不需要传。好吧,它取消了不需要传递的一些参数,有利于减少 没必要的内存占用和性能消耗,这就是它的作用。好,那大家我们对刚刚我们说的这三种函数呢?再做一个总结,让我们回到代码中来。哪三种函数呢?在我面向对象编程中,第一个成员函数或者对象函数,或者叫实力函数,这个函数调用只能是通过当前这个对象去调。 好吧,在调这个函数的时候, self 就 代表正在调用的这个对象,比如说你 p 一 点 it, 那 self 就是 p, 那我 p 二点一,那我就是 p 二, self 正在被调用的这个对象。好,第二个函数是我们的成员,是类函数,第一个参数必须是 cls, 代表当前这个类,那比如说我在函数里面想要拿到当前这个类的名字的时候,其实就可以用这个 cls, 好 吧, 那一样的,在成员函数中,在对象函数中,我需要用到当前对象的时候,我就可以用这个嗽,比如说嗽福点内,我是不是用到了这个嗽,那一样的,其实我在这里也想要打印这个类的名字的时候,也可以用到这个 cls print cls 代表当前这个类,比如说当前这个类的名字下限。啊,那我当前这个类的名字, 那我可以用到它,甚至我还可以拿到当调用当前这个类的一些函数都可以,因为我实际上是拿到当前这个类了,当前这个类我已经通过参数传进来了, 那这个函数这样的函数就是类函数,当然上面还有一个装饰器叫 class method 类函数可以让每一个这个类的对象都可以共享。 当然如果我要调用调用这个类函数的时候,也可以通过类名去调用,也可以通过某一个对象的变量名去调用。静态函数的调用也是一样的,不过静态函数它的参数是是可以没必要传当前对象以及当前这个类,这是最大的一个特点。 好,那关于类函数以及静态函数,我们就先讲到,谢大家再见,记得点赞关注哦。

好,各位小伙伴们,大家好,从今天这节开始啊,我们要正式进入到 python 的 第二阶段,就是 python 的 网络编程和并发。 好,那首先开始进入到第一小节,是 python 的 网络编程以及它的相关概念。那首先给大家讲的第一个概念呢,就是网络通信协议啊,以及什么叫网络通信啊? 那网络通信呢?其实很简单,顾名思义的就是要两台或者多台计算机啊,来实现基于网络的数据交换。其实在我们现在这个互联网时代,基本上不可能存在什么单机的什么程序的啊, 几乎全部都是网络程序的网络通讯程序了,一定有网络数据的交换, 那么这个网络之间通过网络进行数据交换,其实就是所谓的网络通信啊。比如说下面有一个图,我们从有一台主机 a 啊,有一台主机 b, 有 一台主机 c, 这三台主机之间他们很有可能通过某一个网络程序之间进行交互,比如说我这个主机 a 上有一台微信,主机 c 上有一台微信,是吧?那我们两个是不可以聊天,通过微信聊天,或者说主机 c 上有一个专门做上传和下载的文件服务, 那我的主机 b 可以 通过网络去往的 c 上去上传文件,或者从这个主机 c 上把文件下载下来,不管是聊天也好,还是文件的传输也好,那整个过程的其实都会涉及到网络通信 啊,那网络通信你们接下来我们要讲讲它里面出现一些什么样的概念和协议。首先讲的第一个就是网络协议,那什么是网络协议?大家都知道 刚刚我们讲的网络通信其实就是在网络中传输数据的,那网络中传递数据的,他肯定是要遵循一定的规则和规范出来啊。我们把这项的网络传输数据中所遵循的执行规则,那我们把它称之为叫网络协议,这就是网络协议。 那网络协议实际上你还可以这样理解,就是规定在每一层完成自己的任务应该遵循什么样的规范。这句话可能大家不太理解,什么意思啊?我们叫每一层,等会我们就知道,因为我马上就要讲网络的 o s i 模型就知道了。好, 总而言之,你讲讲,假设没有网络协议会造成目的,我们两个之间传输数据,我们可以爱怎么传,怎么传,对不对?所以每个不同的国家,每个不同的公司,他都可以建立自己的通信标准, 那这样子整个全球他的网络传输了就没有统一的标准了,这样不利于网络的复联。你看大家都知道我们现在是全球是万物复联,对不对?万维码时代了啊?肯定是有一套 规定的,或者是由国际组织规定的一套一套网络协议的,或者叫网络传输的标准的。好,接下来我们就要讲这个 o s i。 网络模型了, o s m。 网络模型其实是由国际标准化组织 s o。 我 们就像在很多的工厂里面看到什么 iso 九零零幺,那个 iso 就是 这个国际标准化组织。 那这个国际标准化组织它定义了网络通信协议的基本框架,我们把它称之为叫 o s i, 全称叫 open system 啊, interconnection, 即开放系统互联的网络模型。 那么这个网络模型其实里面有很多种网络通信协议,所以我们把它称之为叫网络通信协议的基本的框架里头有很多的网络通信协议, 我们把它称之为叫 iosi 的 网络模型。这个网络模型制定了七层网络的标准模型,分别是应用层、表示层、绘画层、传输层、网络层以及宿居链路层和物理层。 那每一层我刚刚说了,它都有对应的传输协议,都有网络传输协议,那我们往下拉有一个这样的图 大家了解一下。比如说主机 a 和主机 b 之间,我们要传输数据了,那我们就可能会采用这种七层 o s i 的 网络通信模型。那这个网络通信模型你看每一层一共有七层,每一层都有对应的网络协议来进行相互之间的通信。 实际上什么意思?实际上是整个网络的实现,我们通过七层来进行实现,这意思整个网络的通信传说我们用七层来实现。 当然了,事实上我们在正式的网络做实现网络通信的时候,一般不会用到这个七层。七层只是我们给大家介绍的第一种网络通信模型,是一种最基础的、最原始的网络通信模型。最早的一个 啊 o s i 模型的好处,它是建立了统一的通信标准,降低了开发难度。每一层都有各自的功能,明确每一层的职责。七层这个模型实际上就是规定的每一层的任务,每一层应该干嘛,一共加起来整七层,总共就实现了一个网络通信, 每一层像有各自的协议,知道吧?这就是所谓的 o s i 的 网络通信模型。这个网络通信模型其实就是有 把整个网络通信化成七层,每一层有每一层的职责等,每一层干什么事情?比如说这个数据电路层专门就负责 mac 地址有关的一些和路由相关的一些这个协议,那物理层专门是提供一些跟网络传输的物理硬件设备, 当物理硬件设备他其实只有传递电子信号啊,这个电子信号啊,他通过什么样的一个协议?有物理层的一个协议。好吧,我这刚刚只是举了个例子,所以整个网络通信我们用七层来实现了,就这个意思,每层有各自的一个协议,我们把它称为叫, 哎,这个 o s i 网络模型好,但这个 o s i 网络模型其实是不是现在主流的,我们主流的都是采用。接下来我们要给大家介绍的一个新的网络网络模型叫什么?这叫 tcp ip 模型, 因为 tcp ip 模型它简单化了,它把七层的变成四层的好。虽然国际化标准组织啊制定的这么一个网络通讯协议的模型,但是实际上互联网通讯啊,使用最多的是 网络通信协议通,使用最多的网络通信协议是这个 tcpip 网络通信协议,也可以称之为叫 tcpip 网络模型。 tcpip 也是一个协议族,他是一个协议族,说白了其实也是由一堆协议组成的,是吧?那么他把整个网络的实现,把网络通信的实现划划成四层的 拉斯层、应用层、传输层、互联网层以及网络接口层。七,原来我们是把整个网络划分七层,七层是过于理想,而且的结构也特别的细,也特别的复杂, 那实际工作过程中,在开发效率上来讲,这效率其实降低了,实践的难度也变得很大。如果你想想我自己本人要开始实现一个网络通信,我要开始去构建七层,一共七层,每一层都要开始构建,所以实践难度是非常大的。 在十一工工作中,我们大部分都是采用 tsp ip 这个模型来做网络编程,那 tsp ip 这个网络模型往下拉,它有这么四层,还是也是某事物下, 他把原来的七层变成四层了,应用层、传输层、网络层和网络接口层。网络接口层其实就是各种通信网络接口以及一些物理设备,比如说我们看到了路由器、网卡等等将换机,这是都是网络接口层, 那网络接口层我们往往是不需要自己去构建,直接干嘛直接买过来?假设我要实现网络通信,我直接买过来,那个包括包括网线都是属于网络接口层的,明白吗?接下来就是网络层,网络层包括什么 ip 地址,还有广播地址等等,还有 icmmp 等等。 那这里面实际上就是网络接口中所需要的一些东西,包括什么网络的传输的端口 以及 ip, 还有广播的接口、广播地址等等的,它在路由器交换机里面可能就需要用到的。而这个我们网络层也不需要过,因为我们现在几乎所有的互联网里面, 每一只要是你借了互联网,其实这网络层都都已经具备了,或者说你购买了网络服务,它就会给你提供了, 比如说你家里面装了光纤,装了宽带,那实现了你的家里面假设你是电信的,那电信猫里面他就给你分配了一个啊网络地址完的,其实那个就是和外网进行连接的一个网络地址。 好吧,所以这个我们也不需要构建的,也是买过来就 ok 了。我们需要构建的主要是传输层和应用层,通过传输层来提供地域各种协议来实现传输层的编程,真挚传输数据 通过应用层和和上面的那些应用软件对接。所以我们对我们程序员来说,主要是上面两层,第一层和第二层,第一层就是应用层和传输层。 好吧,这就这样的一个网络模型,网络实现的模型就叫做 tspip 网络模型,也称之为叫 tspip 协议机。为什么叫协议机?因为还是一样,他每一层都有好多的协议。应用层有很多协议,比如说应用层有 http 协议、 htps 协议、 ftp 协议,那传输层有 tcp 协议、 udp 协议。后面我们要去讲从传输层开始讲起,讲讲 tcp 协议怎么去实现, udp 协议,怎么实现网络通信。还会讲应用层里面的,比如说这个 http 以及 http 协议是什么意思。 好啊好,这是简单的给大家介绍一下第四批 ip 网络模型。好,我们先把这些网络协议和网络模型的介绍转下节次我们再介绍跟我们的段号有关的内容,谢谢大家再见。 好,各位小朋友们,大家好,接下来我们继续讲网络编程的一些基本概念,然后我们开始讲这个 ip 地址,因为在网络编程过程中,我们发现两台或者多台机之间想要进行通信,必须得能找到目标地址。比如说我要把一条数据发给 a 机器, a 机器 他的地址是什么?这里所说的地址呢,就是我们经常讲的 ip 地址。 ip 地址呢,其实就是在网络中来标识一台计算机的地址编号。所以根据这句话其实我们就知道了,在网络中能够唯一标识一台机器的东西就叫 ip 地址, 不管是在局网还是在万网里面都是一样的。那 ip 地址的分内般不限于有两种,一种是 ipv 四,一种是 ipv 六。其实我们现在大部分电脑同时支持 ipv 四和同时支持 ipv 六, 包括你家里买的那些很多的家电也是同时支持 ipv 四和 ipv 六了。那, 那比如说像幺九二六八幺点五,像这个 ip 地址其实就是所谓的 ipv 四的一个 ip 地址。那 ipv 四呢?它是采用三十二位的一个 i 帧制的存储,什么意思?就是四个字节,一个字节八位,四八三十二位,知道吧?那这样子它大约只能存四十三亿个地址, 你想想全球有七十多亿人对不对?每一个人拥有一个 ipv 四的不够分, 对吧?根本就不过分的。但事实上一家公司哈会有很多的 ip 地址,因为一个 ip 地址只能标识一台万网中的计算器,所以如果想要你的计算界在万网中都能够标识出来,那四十三亿个 ip 地址名人是不够的。 所以我们前几内经常说这个 ipv 不 够了,那是因为这个 ipv 四啊,它只能采用三十二位的一个,最多采用三十二位的 ic 值来存储。其实我们 ip 地址都是在计算机里面,都是转换成 ic 值,还存在计算机的子盘或者是内存里面。 好,那 i p i p v 六了,采用的是一百二十八位的 i 帧值进行存储,那而且这个 i p v 六一般都是十六帧值的,所以你再看到这个 f e 八零,其实就是十六帧值的,还有八零、 a 七六、 c f a b 幺幺、 i p 七三等等,这个整个加起来,这是一个 ip 地址,这是 ipv 六。 ipv 六它有一百二十八位的 i 帧值进行存储,所以肌肤是不受限制的,它可以提供, 那就不是几十亿个了,是上万亿个,知道吧?所以几乎这样讲,我们人类每一个人都分个几千个 ip, 每一个人都分几百几千个 ip 都可以,全世界每一个人都分几千个 ip, 都还够用,是吧?所以几乎是不受限制的来提供。在互联网时代,尤其是五 g 六 g 互联网时代, 那每家里面的每一个家电,甚至一个开关,它都有一个与之对应的 ip 地址,那这 ip 地址最好采用 ipv 六的应用账号, ipv 地址完全足够的 好。 ipv 四的特点是分为四个部分,大家可以看到幺九二点八幺点五,它分为四个部分,中间使用点来隔开,每一部分都是一个整数。好吧?每一部分的取值都是从零到 i 五,为什么从零到 i 五?因为这四个部分每一部分占一个字节, 一个字节八位,一个字节八位,那 i 的 八四方是多少?二百二百五十六,那零到二百五十五不就是二百五十六个数值吗?包括二百五十五吗?好吧, i 的 八四方就这意思,所以看幺九二幺六八幺点五,这就是一个非常典型的 ipv 四的一个 ip 地址。 那 ipv 六它的特点是分为八个部分,八个部分它翻了一倍,对不对?每部分是四个十六净值的数字,如果出现年数的数字,可以用零, 也可以使用这个双冒号来省略中间的零。比如说像我这个文档里面给大家看到的 ipd 一个 ipv 六的地址,好像文档里面这个 ipv 六的地址,你发现它只有双冒号,对不对?双冒号其实中间省略了什么?省略了大概是四个, 应该是四个、三个零,三个零,连续出现了三个零,都损坏掉了。为什么是三个零?因为你看我们整个 i p v 六是八分,是八个部分组成,这是一个部分,这第二个、第三个、第四个、第五个,还有三个,对不对?还有三个其实都在这三个零, 所以我们使用双码号实际上是省略了三个零了,知道吧?总而言之, i p v 六它是八个部分的,是完全不一样,它的存储也是翻了几倍了。 好,那 ip 地址接下来相关的一些 mini, 我 怎么去查看我自己电脑上的 ip 地址?比如说我要看一下我电脑上到底 ipv 四是什么样的地址, ipv 六是什么样地址,我们是可以通过 mini 去查看。好吧,那如果你是 linux 电脑,那你采用这个 mini 叫 evcom 飞格, 通过 ev 框飞格出现了一个界面,就这么一个界面,大家现在这莉莉搜啊,还没讲是吧?后面的客人中会有讲这个莉莉搜系统,你现在看到这个标记出来了,幺九二二八九四点幺三六,其实就是 i p v 四的一个 ip 地址, 那 f 一 八零,问号八零 a 等等的,这这是 i p v 六的一个 ip 地址,所以我们的电脑中又又有 i p v 四的 ip 地址,又有 i p v 六的 ok。 原因是因为当前我们整个互联网里面有些的程序是是是基于 ipv 四 来寻找我们的地址,有些是基于这个 ipv 六来寻找地址。所以干脆我们的电脑,现在包括不单是电脑,包括我们的手机也是同时有 ipv 四的 ip 地址,同时也有 ipv 六的 ipv 地址, 配角,其中任何一个都可以。然后我们还有一个特殊的 ip 地址,是幺二七点零点零点一,幺二七点零点一是固定的,它就表示本地测试的 ip 地址,只要是幺二七点零点零点一,就表示是本机 啊,这是 linux 的 命令,那如果是这个 windows 的 命令呢?是使用 ip control, 我 们再往下看,还有一个截图, ip control。 那 如果你要是不记得了,我们在这个,其实在这里面敲三 d 会打开 mini, 行, 就在这个地方敲 c m d 就 对了, c m d, 一 敲 c m d 就 会打开一个迷你行,照我这里打开两个了,关联其中一个好,打开迷你行之后在这敲 ip control, 答案一定是英文的,敲完之后往上拉,一般我们的 ip 地址啊,坐在上面 找到你的本地,找到你的以太网试飞器里以太网。好,我们这里你看就有 i p v 六的地址,还有 i p v 四的地址,是不是我这台电脑的 i p v 四的地址是幺九二一二八零点六六,现在我们还是要主流的使用 i p v 四。好,那未来可能 i p v 四就不要了,但现在目前为止 i p v 四还是主流。好吧, 好,怎么样去查看自己电脑上的 ip 地址?我这里都有截图,都有命令,自己可以拿出个命令去试一下啊。再给大家普及一个概念,就是公网 ip 和内网 ip。 公网 ip 是 指利用是可以直接连接到互联网上的公共 ip 地址,大家都可以访问的。像这样的 ip 地址啊,就是公网 ip, 比如说像百度, 百度它一定有一个公文 ip 地址。好啊,将来你进到公司里面做项目开发的时候,如果你们公司做的项目是可以连外网的,那你们公司一定会申请一个公文 ip。 现在跟我 ip 了,而大部分是通过钱买的,当然你可以去很多的供应商去买,比如说你去阿里云上买,华为云也可以买,或者你直接去中国电信也可以买,买一个 ip 地址的好像很便宜。不显而论,如果你买一个机位,或者说买一个续地主机,它都会送你跟我 ip, 因为现在跟我 ip 了,不值钱了。 前几年 ipv 六没有出来之前跟我 ip 还蛮贵的,但现在的跟我 ip 已经不怎么值钱了。你买一台主机,它一般都会搭配一个跟我 ip 给你。 好吧,那这个跟我 ip 可以 直接记住我这个词,直接连上互联网的,而且大家都可以访问。 好,这样的 ip 就 叫做跟我 ip 啊。内网 ip 是 指在一个局域网。不是,不是我们所说的互联网啊,是局域网范围内有网络设备分配的,或者你自己设置的一个 ip 地址,只是在你这个局域网内部使用。 比如各位你家里面很多台电脑基基本上的每一台电脑都会有一个局网的内部 f d c, 包括同学们刚刚看到在我的命令行里面看到的这个幺九二一二八零点六六啊,这个也是一个叫局网内部的 f d c, 叫内网 ip。 老师,那你呢?那你,那你怎么可以连外网?实际上我的我,我的电脑他连接了一个外网的内个光猫,它里头携带了外网 ip d c。 好吧,我们我这个办公室里面所有的电脑都是通过一个万网 ip, 是 连接互联网是吧?我们这个办公室内所有的电脑都组建了一个内部局域网,那每个人分配了一个内部局域网的 ip 地址,大家如果上万网,雇用一个万网 ip, 就 这个意思。 好吧,好,这条继续来。讲完这个 ip 的 概念之后了,还有几点两点要注意,幺幺七点零点零点一,就代表是本地的地址,就代表本地 是两台机器,就两台机器,你比如说你这台电脑也有一个 ip 地址,是吧?幺二七点零点零点一,你隔壁的同事他的电脑上也有一个 ip 地址,是幺二七点零点零点一,好吧,那这个幺二七点零点零一就代表本地的这台计算机 就代表本机的地址。好,幺九二幺六八开头的,一直到 i 五五 i 五五,那这样的 ip 段 几乎都是属于类网的 ip。 你 说各位你自己的电脑上可能是幺九二六八幺点多少的是吧?或者是你未来工作之后,你在你的工作的办公室里面的 ip 地址是幺九二六八 零点多少?这些全部都是属于叫类网 ip 地址。类网 ip 地址是属于非注册地址,这每个人、每家公司的,每个家庭、每个办公室你都可以自己组建,知道吧?专门为机构组织内部去使用的, 他是非注册地址,你可以设置多少至多少无所谓啊,这就是内网 ip。 好, 那整个关于 ip 地址的概念就讲完了。好,感谢大家。再见。

兄弟们,今天我们来做一下这一个图形,首先我们先提取它的车厢轮廓,我们先创建一个层别,然后可以我们可以把它命个名字叫做车厢轮廓嘛,这样子我们才比较好,知道我们 提取的这是什么东西吗?这个图层好,提取完以后我们就用车销开始做,首先先出车嘛,这边开始,这边结束零八万元,对吧?然后出车进车切出可以切出一点,然后到时候没切断,对吧?切过来以后 我们做这个槽,然后勾槽的话,我们可以选两点间用个四米的槽刀,然后出镜一起做嘛,对吧?有个时速就好了,听话,左侧这个给它关掉走向,哎,没问题,按它默认,然后这样子 好,这边做好,好,我们就来做这个,他这个是个军部的螺旋槽,对吧?我们也可以只先做这一份吗?用喜销道路里面的高级旋转来开开出他吗?首先创建道具,我们直接用球刀来做吗?用这个无敌的球刀, 然后它毛坯它就已经是已经设置好了。然后我们切削方式,首先它加工方式是粗切,对吧?然后固定半径,它只有这一个,所以说就不用去选它,然后偏移,这边类型平面偏移是这样子,然后加上这个平面螺旋,我们选这个嘛更全面。然后它的切削方式我们一般都选双向嘛,对吧?然后此和这个就是顺行逆行嘛,对吧?先不, 不用去管他,然后他的加工排序就是一个区域,一个区域,他图纸也有他这边区域,这个整个区交完再交下个区和深度,就是说一层一层就是每一层就这样子过去,那我们一般选区域嘛,对吧? 然后他这个深度切削,这边是轴向边,是近向吗?对吧?你看这边图也是,那比如说我们加工一个,然后他的最小切削距离的话就一样,那我们留二十四的鱼量,那么我们就这这边跟我们要留的鱼样子相等是可以的。然后附加切削就是给你补刀吗?就是说保证你每一层都有 都是鱼量,是相相等的吧?然后这个固定量就是说比如说我们五菱的刀,我们二点五百分之五十可以,是不是?然后这个平滑给他常规打开呗,悬弧过渡加工几何图形,我们就直接选择我们这个图形 框,选他就好了。然后我们毛胚有量有个零点二,对吧?切加公差默认这些都不用设,按它默认,然后其他这边不用那么长,给他设一下,其他的话都按他默认值来走。这边有一个多现成管理看一下,你可以看一下他到哪里了,我们耐心等待一下吧, 他就给我们生成了,但是他是基于我们毛胚,就是说我们选择的毛胚和这个选择的这个加工面,他是这样子来生成的,就是说那生成太多了吗?那么我们就可以 提取一个成边,我们把它限制一下。加工区域吗?我们就只加工这一条,我们用这个模型准备吗?有一个实体特征,修改实体特征,我们创建这个主题吗?我们就 把这三个面选上,然后你看点打勾,确定你看它就创建了这个出来,创建这个出来我们就可以选择它作为我们的实体吗?到毛坯这边吗?我们不要选择公建设置,公建设置的话就会继承我们这个的毛坯吗?就说这个设置的毛坯,那我们选择这个,对吧?然后就确定让他重新生成一下, 你看他就是说直接限定在这边了,限定在这边的情况下,嗯,但是我们这边的话还是不好的,我们想让他过去点嘛,对吧?过去点的情况下,他这个道路延伸也没有说很延伸出来,那么我们可以怎么样呢?就是说把这个 复制一个图层出来,把这个两边拉过来一点,那我们就直接这样子推拉吧,对吧?然后就推拉大概有个四五个嘛,对吧?好,推拉完成以后,我们就是说把这个自定义主键这边给他重新选一下, 对吧?我们选这个好,然后就他就会帮我们做到这边,然后我们把这个隐藏掉,然后看看,看一下,你看他这边就帮我们延伸出来了,延伸出来了就是比较好的。然后但是他这边的道路我们可以让他说,让他这边连接方式这边,让他不要这么多 提刀吗?就能这些全都给他改成一两条曲线,然后这个旋转过来到这边吗?那我们这边有一个劲给绿控制我们这边区域之间, ok, 把这个勾选勾选起来,让他更加顺滑,然后的话他这边 他这个进退刀控制,你得做他的走线,不然的话他没法控制他的退刀,我们可以这样子做他一条走线,然后这边第一主线这边有个旋转轴吗?我们是基于这个旋转轴做的,我们在这边点的话,他就在这边进退刀,他不会到里面去,你看他这样子就更好了。哎,我们就这样子就基本完成了吗?对吧?然后我们进去 我们这边就做好了,这边开除好以后我们就还是老样子旋转,直接用撤销里面的道路旋转去旋转。嗯,刀具 n c i 选它上它自我维护。对,我们进入实体模拟看一下。 好的,那么我们这一个图形的就加工完毕,然后他这边呢?会因为我们这边有那个倒角嘛,这样子就给我们出加工就完成。

今天说一下 g 幺零与 g 六五指令的深度结合,也就是掌握数控编程的参数化与自动化的核心技巧。 它一共有四点啊,核心的逻辑配合、多功能自动加工、自动修复与补散、系统误差与安全还没,还要加一个用 sim 口来确定我们的程序是否是 ok 的。 那核心逻辑配合就是 g 六五负责传递交换,因为它可以调用红程序, g 幺零负责执行动作,两者结合实现参数化自动化的一个加工技巧。

学 u g 多轴编程,如果你连这些所谓的高级功能都还不会用的话,那你就很难达到相应的高度,那么今天给大家分享 u g 里面的一个自动避让,自动避让是一个什么意思?他又是基于什么一个逻辑?那么呢我们通过这个案例来给大家一起分享。 好,那我们现在的话呢,比如说这个弓箭,我们想加工的呢,是这个灰颜色的面,那么这个面的话呢是整圈啊,都要加工的,我们是一次性啊,一刀扭这么下来啊,这个面的话我们要注意一下啊,那么他的话呢是往侧壁有这么一个倾斜的,那么他也就是说呢有侧壁这么一个刀口 好,呃,通常情况下的话呢,我们很多人呢就是拿到他来,呃,想到用什么侧壁做呢?我们通常情况下会想到用这个来,呃 引导线啊,这个引导线呢确实比较方便啊,这里来整,我相信很多人呢都会我们点击创建工序,然后呢在这个多轴里面,这里有个呢啊可变引导线, 操作非常简单啊,选择一把刀具,这个的话呢是一定呢我们要选部件的啊,不仅要选上,然后那我们的一个切区域啊,这个是必须也要选的,选择切区域 好,然后再接下来的话呢,就是选择了这个轮廓,那么两组线我们选择变形啊,选择变形的话 第一组轮廓,那么选择顶部啊,注意起点,然后添加星级,再选下一组, 然后这里一定要注意我们这个镜头方向保持一致,由于它是一个封闭的,那我们这里选择一个切方式,选择个螺旋,这样就不抬刀,布局量我们是可以给大一点,比如给一个毫米,好,那这些参数的话呢,我相信呢,大家呢都会啊,那么接下来的话就是我们的刀轴怎么给 啊?这个刀轴怎么给,其实的话呢,这个自动避让呢,他是这么个逻辑,就是我们的话呢,避让肯定让他呢对碰撞的地方呢,进行一个避让, 那我们首先要给他一个刀轴,先把这个刀给算出来,那么他是他是在我们现有的道路的基础之上进行避让的,要给他一个道路,那这个道路的话,刀轴你也不能乱给,要尽量啊接近于我们最终所想要的刀轴,所以像这种的话,因为我们这个它是三百六十度这样旋转, 如果这个侧臂他是九十度的话呢,当然你们远离直线是可以的啊,现在正是因为呢他有个侧心,那我们后续就想到自动的侧心和角度,所以接下来的话呢,我们先呢就给他一个刀组,给他一个接近于我们最终的一个刀组,在这里的话呢,我们就直接给他一个呢远离直线 啊,直接给它原地直线。那么旋转轴呢?呃,那肯定就是我这个 x 轴啊,我们这个 x 轴啊,点确定?先把这个刀路呢给算出来,我们点击计算,那么这个刀路呢算出来了,算出来之后,那么我们再确认一下这个刀轴, 刀轴的话,这里用的是一个远离直线,那么远离直线,当然呢,他这个刀轴呢,和我们这个旋转轴是垂直关系,那么是垂直关系,那么这个位置啊,我们会看一下有刀扣的地方,必定这个刀具会和我们的弓箭发生一个碰撞啊, 啊,这个刀轨是做出来的,那么接下来的话呢,我们又又要去让它自动去逼让掉在哪里呢?这个是我们学的呢啊, 这节课的一个重点,那么其实这个避让这个地方呢,他默认是碰撞啊,就是说呢有碰撞他会给你提醒,那我们接下来改成什么呢?侧倾,侧倾的话对应的里面有很多参数 啊,这参数呢,我们可以先不管他,我们先可以让他默认啊,点确定,然后我们重新计算啊,重新计算好,那么算出来之后呢,我们现在呢看这个道路啊, 那么他这个刀扣的地方呢,就自动的给你进行避让了啊,刀轨其实还是之前的刀轨啊,这就是一个呢所谓的自动避让 啊,那这种方法呢,就非常的方便啊,如果当然我们用其他的一些策略去做,你说我用别的一些刀轴控制方式去做,肯定能做出来,可能你花的时间呢,那可能就是我这种的呢十倍甚至更长 啊,所以这个自动避让在多轴里面那是非常实用的,因为它会自动的根据你这个的啊弓箭去进行一个避让啊,这种是一个智能化的一个体现。 好,那么在这个轴避让这里面的参数啊,具体是一些什么意思?需要怎么调整它呢? 同时啊,就是我们也可以通过里面的参数的一个设置,强制性输出四轴,所以这个功能是非常实用的,尤其在四轴里面也是非常实用,无论是四轴还是五轴都是非常实用的,所以这个策略的话呢,通过下个视频给大家分享。

好,各位小伙伴们大家好,那前面要对于面向对象以及继承我们就讲完了,讲完之后喽,要给大家总结一下,就是在面向对象这个概念中呢,我们有三个大的特征, 不管是 python 语言还是加奥语,还是其他计算机语啊,所有的面向对象编程一般都会谈论这三个特征,封装、继承以及多态。 那我们先从封装开始说起,封装其实就是将属性和函数写到我们类的里面,我们把某一个类的行为操作就是当成函数去去去把它代码写完着,数据本身就写到函数里面去,或者说这个特征就写到函数里面去, 也可以为一些属性和函数添加私有的权限。这种封装是未来用的比较多的,尤其未来你可能做全山开发,爬虫数据分析等等的相关的这些方向,那你未来一定会用到这种封装, 你可能未来用到的时候你可能不在意,然后接下来我要给大家看一下代码,让大家体会一下,好吧,好,稍等一下,我打开一个文件,那这个文件大家看到了,实际上是一个一个类, 这个类啊叫员工的员工类,叫叮叮 employee, 咱们是个员工类里头,我们发现他吉弥陀佛就是一个很典型的封装。这里面封装什么?封装了这个员工里头的数据,员工的名字、员工的工作、员工的入职日期、员工的基本薪资等等做了一个封装。 那这种封装是主要是什么?主要是封装了员跟员工相关的所有的数据,都封装到这么一个类里面去,其实上面这个也是一个典型的了,这是一个媒具类,也是做封装,不过他封装都是一些常量,所以我把它称作叫媒具类。 我们站在数据的角度,经常使用这种面向对象这种定义一个类来封装整个这个跟员工有关的一些数据,把它封装到一个类里面去 呀。刚刚我说的这个员工的名字,工作入职时间、基本薪资津贴、是否离职、他所在的部门等等的这些不都是跟这个员工有关吗?这么跟跟跟这个员工有关的数据,我们都是封装到这个类的属性里面去,那个这个特点其实叫封装。 未来我们经常是使用这样子的一个封装的特性去定义序类,包括等会我们讲完异常处理和模块,我们后面要做一个大的项目,这个大的项目中就有了封装, 到时候再说。接下来第二个就是继承,我们刚刚说了有单继承,有多继承,一个类继承一个负类啊,就是单继承,如果一个类继承了两个两个以上的负类,那么就是多继承。在继承里面我们可以继承负类的所有的公共属性和公共函数。 对,只有是那种设设置了私有属性和私有权限的,这样的属性函数是不能继承的,其他的都是可以继承。继承有最大的好处,其实就是极高代码的可重复写, 让我们未来写代码变得更加的简单,我们只关注父类没有的那些功能和属性,我们去写父类已经拥有的,我们直接继承过来就可以了 啊。所以未来写代码,尤其是很多个程序员组合成一个开发团队一起去写代码的时候,这个继承真的是非常用的,非常的多。 往往是当一个项目经理,或者是一个技术部的负责人,或者是一个技术的小组长,把一些公共的类写好之后,很多人都是继承这些公共类,尤其未来我们在做全站开发,做爬虫的时候,你一定会用到继承。 哦。好,接下来是多态的,可能很多同学第一次见,第一次听过这个词。多态的其实就是同样的代码,传入不同的对象,会产生不同的结果,这好比是有多种状态,一样叫多态,叫这一个函数。同一个函数,我们只要传不同的对象的参数,那他就会产生不一样的结果, 这叫多态。我们举个例子让大家体会一下,来,回到我们的拍叉文中来,好,新进一个新的批光文件,举个名字叫四十亿多态。比如说,首先我一压倒定一个 anim, 它 pass。 多态肯定是跟继承有关系, anim 技巧 app 包括起来, anim 里面提供了一个 c 的 函数, c 的 函数,这个 c 的 函数里头甚至什么都不写都可以 pass。 好,你再定一个 bug, 继承 animal 发行的,继承完之后,你会重写这个四 a 函数。重写,那我们打印一句话, print 狗狗的叫声是不是汪汪?好,接下来你还会重写一个,再重写一个 tatt, tatt 也继承 animal, 重写 a 函数,那么猫的叫声呢?应该是 喵。好,这样写差不多了,接下来我在外面定义的一个公动函数,比如说这个函数名字叫 test, 这个 test 里面我们有了一个对象,朝一个 object 对 象啊,朝了 object 对 象之后,我不管这个 object 是 什么东西,没有调用了 object 里面的 c 函数。哦, object 里面的 c 函数, 好,把它格式化一下啊,我们代码格式化一下,接下来我们就去调这个 text, 那 我一开始了,我先创建这个 dog, 再创建一个包括起来。好,接下来我就调用这个 text 函数,一开始我传一个 d 进去, 传我们来运行走,出现了,汪汪,对不对?还是 text 这个函数,我现在传一个 c 进去,执行一下,出现了喵喵了,大家想一下,就是同样的一个函数, text 函数,我前传了一个 d, 之前传了一个倒的一下手板,再传了一个 k 之家,他出现的结果不一样。对,这就是所谓的多态的一个特气概,传入不同对象就是产生了不同结果。我们一个是输出了汪汪,一个输出了喵喵,这不是出现了吗?那其实就是 我们多肽之所以产生了多肽,其实就是因为在继承中,我们是有函数的重写,由于我们是继承,所以不管是 dog 也好,还是这个 cat 也好,其实都属于一个类型。你甚至这样子写,你规定了说这个 object 是 同一个类型,什么类型?是 animal 这个类型, 那你也是可以传 dog 和和 cat 都是可以的,因为不管是 dog 也好还是 cat 也好,它其实都是 animal 这个类的类型, 是负类的类型,之前我们讲过的。好,那我同样的都是负类的 animal 这个类型,我传不同的对象,但是他给我返回,或者说给我得到了不同的一个结果,这就是所谓的多肽 好封装多肽以及继承。大家了解这三个的基本概念啊,实际上我们未来在用的过程中是自然而然的就直接用上了,到时候你就知道这就是多肽,这就是继承 啊,到时候我们在用的时候还会给大家去说明,只要用到了我们会说明啊。那关于命向对象的三个特征我们就到这了,感谢大家,再见。

好,各位小伙伴们,大家好,接下来我们开始讲递归函数和高阶函数,那这就属于函数部分的高级部分了。前面我们讲了一些基本的函数,包括这个函数的定义,函数的参数,函数中的一些访问值,以及 全局变量和局部变量等问题。第八节的递归函数和高级函数,难度要比之前的那种简单基本的函数要稍微难一点点。 不过了,未来你要在使用的过程中,那还是基本函数弄的多一些。百分之百分之应该是一个三比七的比例,大概百分之七十,你碰到了大部分函数都是一些基本的函数或者简单函数, 那百分之三十左右是递归函数以及高级函数,就比例还不低。好,现在我们从第一个递归函数开始说起。什么叫递归函数?这就是说在函数的内部自己调用自己,并且得有退出函数的出口。 啥意思?比如说我们现在定义了一个函数,在函数里面我再调了一下这当前本身的自己的函数,那照你这么说,是不是 在在这个里面又会调一下自己?那永远调来调去了,那是不是变成一个什么死循环了?是,其实在低规函数中,本身由于自己调和自己,它就是一个循环了。 虽然我们这里面没用到否循环以及否循环,但是由于在函数内部自己调自己,内部的自己又调了自己,你想想是不是形成了一个循环? 由于形成了这么一个循环,那么后面有句话很重要,你必须得有退出这个函数的入口,否则就会出现死循环的问题,这就是低规函数的一个最大的特点,对,低规函数最重要是什么?你在自己调自己的时候,你必须要确定什么时候退出这个循环, 退出这个函数。那递归函数有哪些应用?比如说我们可能下次下一节第九节我们就要讲到的就是便利一个文件夹下所有的文件,那由于文件夹里面还有文件夹, 文件夹里面有子文件夹,子文件夹里面还有子文件夹,你要一层一层的递归到最深的一层,那这个时候你必须要使用递归函数才能实现, 或者说实现起来方便一些。还有后续我们的算法课程中,我会用到一些什么排序的算法,我们快速排序啊,分区排序等等,也会用到地柜,而且积极学习里面一些算法也会离不开地柜,地柜确实还用的蛮多的。 好,那接下来我们就举个例子,这个例子实际上是这个图在这,我们先不是说这个图,等会再说这个图的问题,这个图是干嘛的?这等会我要讲的一个案例,这个案例是计算一个数字的结成。 计算一个数字的结成是啥意思?这个数学里面的结成的运算可能有些小伙伴忘记了,比如说要计算六的结成是什么?是六乘以五乘以四、乘以三、乘以二乘以亿 七的结成呢?就是七乘以六乘以五乘以四乘以三乘二乘以二、乘以一样的八的结成就是八乘以七乘以六乘以,以此类推。那你有发现规律没有任何一个整数 好,任何一个正整数他的阶乘,任何一个正整数他的阶乘,假设这个正整数是 n, 他的阶乘是不是等于那 n 的 阶乘?是 n, 后面加感叹号等于 n 乘以 乘。以什么乘的 n 减一的阶乘,减一的阶乘,这一点大家看懂明白吗?比如说六的阶乘是不是就是六乘以五的阶乘,五的阶乘是不是就是五乘以四的阶乘? 四的结成是不是四乘以单的结成?好,所言之,任何一个正整数,它的结成是这个 n 乘以 n 减一的结成,是吧?那么我求一个数字的结成,我是不是还得求它小比它小一的那个数字的结成啊? 如果要求这个比他小一数字的接乘,我是不是得求他比他小一的一个接数字的接乘?也就是说,我当我要求六的接乘,我是不是先把五的接乘算出来?我要求五的接乘,我先把三的接乘算出来。我要求三的接乘的时候,我先把二的接乘算出来。 好,当我要求二的接乘的时候,我先把一的接乘创出来,一的接乘就直接可以结束了,因为一的接乘就是他子就是一。 好吧,那这个不就是在一个函数的里头自己调自己吗?地龟,好,接下来我们把那个阿力用代码来实现一下,等会我们再回过头来看这个图,这个图其实很好的意见啊,回到我的还差五中 新建一个新的 p 王文念,我取个名字叫二十七。地龟回车 这个低位函数,我先说一下需求,就是计算需求,计算一个正整数的阶乘啊,那我先定一个函数,一个函数略这个就要定一个叫 tax, 那 他要计算一个正整数 n 的 阶乘,你是不是给他定一个参数?这个参数他类型一定是一个整数,当然一定是正整数,是吧?啊?当然这个类型我们可以不定,我们全面讲课,他返回时也是一个什么, 他返回是不是也是一个整数?计算一个数字的结成一定也是整数?好, 写个注是计算一个数字 n 的 结成,那么返回值就是一个数字的平方。注我就不写了。这行代码应该怎么写?这个代码其实写 我们写地规函数的时候,其实刚刚的定义中已经告诉大家了,在函数内部自己调用自己,对吧?但是后面还有一句话很重要,而且我重点强调了,就是在地规这样的函数里头啊,一定得有退出函数的一个出口, 而且你要优先考虑他,你要明白这一点。好,那既然如此,我们想想什么时候计算一个数字的阶乘,就直接返回,就直接退出函数了,不用再往下低规了。当计算一个数字 e 的 阶乘的时候,就不用再往下了,因为 e 再往下就是零的阶乘,没有任何意义。所以 左盘吗? if n 等于一啊,怎么了?直接 return 返回这个函数,返回这个函数就是退出函数。 对,之前我们讲过的,千万别写 break, 那 是退出时域环啊,两码事。好,这句话的意思就是说,当 n 是 e 的 时候,你要计算 e 的 进程,直接返回 e, 因为 e 不 用再递归下车。那这其实就是什么学主旨,这就是递归 函数背出的出口,这个很重要,得有这个出口,没有这个出口啊,我说过它就是个死循环。 那接下来根据你需求,我们再去写怎么个递归法,是吧?好,那先写了。好,那就是我计算一个 n 这个数字的结成,我直接拿着 n 和 n 减一的结成 相成就可以了,是吧?结成减一, n 减一的结成是不是? n 减一?是不是又是一个整数? x 这个函数不就是计算一个整数的结成吗?那我就调用一下 x, 把 n 减一作为参数传进去。对,在十二行这行代码中,是不是在函数的内部自己调用了,自己最后也来一个日测。为什么要日测?因为你十二行也是要返回不是?估计有有一些小伙伴们说,那十一号你已经返回了,为什么十二行也要返回了?你想想, 十一行的返回,是的, n 等于一的时候,他会返回的。那么 n 不 等于哪呢?你就不返回了, 你再想想,你发现这两句话都要加 read, 是 不是代码写完了?各位,写完了,这就是计算一个正整数 n 的 阶乘。 当你发现只有三行代码,感觉好像很奇怪一样。没有什么奇怪的,这就是最简洁的一种代码的写法。所以地归函数,别看它的思路有点复杂,但事实上它的代码是很简化的。 那我们来试试测试一下,我们打印一下 print text, 我 们先计算二的接生,二的接生就是一,就是二乘一。 ok 啊,我们来运行一下,二乘一等于二。没错,那五的接生,五接生应该是一百二十吧。对,果然是六的接生。是什么?六的接生是不是六乘一百二十? 六乘一百二十是一六的六啊?其实七百二十。好,我们计算一下六六的阶乘是不是七百二十?果然是的,你看,这就是计算一个数字的阶乘,就这么简单。好,那我们接下来再回到我们这个图中啊,计算一个数字的阶乘,假设这个数字是六, 那实际上先做判断,六是不是等于一啊?不等于一,那他就会执行下一行,就不会进入到刚刚我们说的义务条件。哎,义务,这个义务条件, 当 n 等于六的时候,是不是不会进到这个义务条件?不会进到义务条件,就会执行这一行代码,那这一行代码是把着 n 用 s, 六乘以 x 五,对不对? n 减一附着五等于 x 五。 所以当 n 等于六的时候,实际上就是是拿着六是乘以五的阶乘,当 n 等于,那这时候他就重新调了一下自己参数,传了一个五进来。所以说白了就是第二次调用的时候是在内部调的,调的是参数,传的是五 啊。计算的是五的结成,那五的结成是不是又是拿着五乘以四的结成?所以第三次调用处传为四进的四,再乘以三的结成,依次 a 退。当第六次调用的时候, n 就 等于一了, n 等于一, n 直接返回,他会依次往上返回。因为由于 n 等于一的时候能够直接返回,所以 n 等于二的时候的结成就可以得到结果。 由于二的接生可以直接叠得到结果,那三的接生也可以直接得到结果。三的接生得到结果了,四的接生也可以得到结果。四的接生得到结果了,五的接生可以得到结果。然后以此类推,六的接生也最终能得到结果,所以最后直接返回。 所以你发现没有,地规是一个先一层一层的往下地规的很多层就不一定的,要看你这个数字是多少,是不是 到了这个函数的退出,函数的出口的时候,再一层次的往上返回,这就是所谓的递归函数的特点,几乎所有的递归函数都这样子了。好,那关于递归函数就讲到这,感谢大家再见,记得点赞关注哦。

很多人玩 y coding, 用 coser gemini 写出了一堆逻辑,结果界面一出来就觉得啊还挺丑的,就是满屏的一些默认按钮和死板的布局。比如说像我今天为了展示生成的一个 tutus 的 一个小工具, 这个就是没有任何的一个设计的感觉。我今天就给大家介绍一个小技巧,可以让大家的 ycode 产品变得高级起来。那这个技巧主要就是在一些网站里面找到参考的设计跟布局,然后我们发在 ycode 的 软件里面,让这个软件按照这个设计稿来生成。 首先给大家安利这个全球设计师的市场灵感库 dribble。 简单来说, dribble 就是 u i j 的 pinterest, 这里汇聚了全球顶尖的 u i u x 设计师,无论你是想找最流行的玻璃泥肽,还是当下最火的极简风,这里全都有,它就是 y coating 的 视觉大脑, 不用会画图,但你得会挑。当你不知道你想要设计的产品长什么样的时候,你就可以在这里找一些灵感,比如说我们可以随便点一个看,我觉得这里的设计就真的是非常的精美,很有设计感。 当你已经知道自己大概要做什么类型的时候,你就可以在这里搜一些关键词,比如说如果你想要做一款运动相关的 app, 那 你就可以搜索 sport app, 然后它出来的都会是跟运动有关的一些 app 相关的设计,那我们随便点进去一个哦,这个也挺好看的。 我觉得这个软件还有一个最绝的一个筛选方式是你可以根据颜色来筛选,而且它这个颜色非常的丰富,从浅就是明暗,还有各种颜色的一个选择,那比如说选择一个橙色的好了,它就会出现所有橙色相关的设计的颜色。 那因为我们现在要做的是一个 app 嘛,所以我们可以在这里先搜索一个 app, 让它出现的都是 app 相关的一些 ui 设计。 我们先随便选择一个,把在追捕找好的心仪设计截图,然后直接喂给 ai 助手。术语也给你们准备好了,参考这张图的视觉风格,包括配色阴影和圆角幅度来重构我现在 u i 界面哦,然后你就发现,呃,整个的那个软件的页面的配色跟我们刚刚发过去的这个配色是类似的,也比刚刚的那个蓝色好看了很多了。好了,那今天的分享就到此为止,希望大家可以用这个网站来帮助自己的 ycode 变得更好看。