粉丝10.6万获赞31.8万

后面的练习会用到一些拍森模块和包,所以这里先介绍一下拍森模块的导入功能。拍森模块其实就是一些函数和类的集合文件,它能实现一些相应的功能。 拍森包其实就是一些模块的集合,拍森包提供了一系列功能相关的模块,当我们需要使用这些功能的时候,直接把相应的模块和包导入到我们的程序中,我们就可以直接使用了。拍森之所以这么流行,一个重要原因就是拍森有大量的好用的模块和包供大家使用。导入拍森模块和包 需要用到 n po 的关键字, n po 的关键字的基本语法如下,其中猫九就是导入的模块的名称。图中是导入数学模块的例子, 可以看出需要在使用之前用 npo 的关键字导入模块,模块导住之后会自动生成一个与模块同名的对象,这个对象包含了模块中所有的函数、变量和类信息,使用时我们可以直接调用对象内部的函数或变量。 图中是导入图像包中的一个模块的例子,方法与基本语法非常相似,只是多了一个点用来表示包中的模块。

今天我们来说一下拍摄中的模块导入。在拍摄当中,模块导入只有下面两种方法,一、相对导入。比如我们用 elogram 语句来导入 red 这个模块,此时模块被导入,但是他保持着自己的名称空间, 所以在使用的时候,我们必须要使用模块全名加上点,再加上函数或者类的名称。如果觉得模块名太长,可以使用 s 加简写,此时模块名就可以替换成简写。 二、绝对导入。比如 flow read。 多说两句,在模块文件中,如果看到下划线,下划线哦,等于一个列表,那么此时相当于在使用福尔模块名引破心的时候,只导入列表中的函数或者类,其他的不导入。

在拍声中, input 和 from input 都可以用来导入相应的模块,那这二者有什么区别呢? input 只能导入模块纸包包,而不能导入模块中的内函数边脸等。 from input 可以导入模块纸包包内函数变脸,以及在包的阴历册文件中已经导入的名字。其实 fromtiquent input 八成就相当于这段代码。


虽然安装 open cv 包的时候名字叫 open cv 干拍神,但在导入包的时候是写 input cvr。 为什么叫 c v r 呢?这里面的 r 并不表示 open c v 的版本号, open c v 是基于 c 或 c 加加的, c v 表示底层用的是 c 的 a p i c v r 表示使用的是 c 加加的 a p i。 这主要是一个历史遗留问题,是为了保持先后的兼容性,但为了方便,一般会这么写, 给他取一个别名,这样在打字的时候就可以少敲一个数字,不仅可以保护手指,还能提高效率。通过这行代码 就可以打印出 open cv 的版本号。恭喜你成功实现了 open cv 的第一次调用。刚才巴普老 是有剪刀, c v r 用的是 c 加加的 a p i, 它使用 nampad 来存储和处理图线,所以在安装 open cv 干拍层的时候,自动安装上的依赖库 nampad。 这时我们可以直接导入那么派的包,并打印出他的版本号。 南派又是什么东西?南派是派森专门处理高位数组的包,他用来存储和处理大型矩阵,比派森自身欠套列表结构要高效的多。另外针对数组运算提供大量的数学函数,苦真的又快又好用。


好,接下来我们讲导入,导入类用 import import。 呃, import 呢?在单词里边当然是什么?进口啊,出口的意思是吧?呃,进口的意思是吧?我们的 import from china 是吧?从中国进口, 然后呢,这个他有什么作用呢?就是说如果我们要使用其他包的类,我们就需要使用 mbox, 这样的话我们在本类里边就可以直接使用了,不然的话,否则的话我们就只能写完整的包名和类名, 这是什么意思呢?现在回到我们的项目里边,大家看在这里边呢, 哎呀,这这两个是同名的啊,然后大家看啊,现在 我们在这个 test 下面,我再建一个类,叫 test and box 啊,看,顾名思义是吧,用来测试我们的导入的。 好,来大家看哦,现在如果我要使用啊,呃, past, 来咱们的 op 这再建再建一个类,嗯,建个类叫什么类呢?叫 car 啊,汽车类。 呃,汽车类里边啊,啥什么都不用写吧,就是空的。大家看哦,现在我这个里边呢,如果我要只用另一个包下面这个 car 我该怎么用?我需要这么写 it 百战点啊, op 点看到没有?我需要这么写啊。 newcome 点什么 含金百战点,这个多皮点啊,就这么些,嗯,对吧,这种代码很酸爽是不是? 哎,我们如果这个路径更长的话,你会发现这写吐了哈,对不对?如果我要使用,比如说我要使用 seven 啊,我们当然可以这么写, stream 啊, stream, 但是我也可以这么写啊,加入了点儿 land 对吧?点儿 stream 是不是? 大家看带上包名的话,我们可以通过他可以找到我对应的对应的什么,对应的泪,但是大家看脸上这样不方便,是不是太不方便了, 太不方便了,如果代码都这么写的话我估计程序员的头头会更少,怎么办呢?好,我们使用导入,导入怎么写? 他还可以,这是位于第一句啊,我们下面啊,这个注可以在这个注视后面或者注视前面都可以,注视后面一般是在在这 inpose 啊,我要使用哪一个类?比如我要使用这个卡,那我就把这个大脑导入导入进来就可以了。来一起百战点什么 op 点卡,大家看 如果我这么写了以后我就再也不需要这么写了,我要用的时候呢我只需要干嘛? 如果我还要再扭是吧,再扭呗, 看到了没有?这个没有任何的影响来我可以反复的去写,这就是导入的好处。好来回到我们的文档里边, 从下说有这样两个注意点,大家注意一下哦。 这几个注意点。首先加瓦会默认导入烂包下所有的类,这些类我可以直接用,就像咱们前面用的什么用死菌类,死菌类我从来都没有导入过,是不是可以拿来直接用? 是不是啊,这是为了为了放,因为它里边都是我非常非常常用的类,我们可以拿来直接用。然后呢如果如果这个导入了两个同名的类,那就只能用包面加类面如万一啊,万一我们 在写的时候呢导入一个卡,我另一个报名下面也来一个卡,哎,这两人确实怂了,怎么办呢?那你就老老实实的把报名写上,因为这种情况不多见,偶尔会碰到这种偶尔会碰到的情况, 那就我们就用最笨的办法以示区别好不好?最笨的办法以示区别。 ok, 就是这种方式啊。把报名写全了啊。好,继续说。呃在咱们这呢给大家做了一个视力啊,就是我们导入这个,我这就不是了啊,还有一个小细节啊,比如说我要 这个导入一个包下面所有的类,看我可以写个点心。 写个点心什么意思啊?呃。他会导入该包下所有的类,会降低编意速度但不会降低运行速度,所以这无所谓的。 写芯的好处是什么呢?你不用,比如我这个包下面很多类都要用啊,你就不用看到底是谁了,直接点芯全用了编意速度降低 运行速度不会奖励。因为为什么呢?因为实际上最终用的时候呢?比如这里边这这下面有二百个类,我并不会导入二百个,实际上编辑机会检测我这到底用了几个。用了其中了三个我还会,我还会什么呢?只写其中三个 好不好?所以他变异速度会降低,但是他运行速度没有任何的变化,所以呢像这样的这个我就直接粘过来了。 这我们可以这么写。好吧。但是呢这是灰色的,为什么呢?是因为没有没有用到里边的任何的类啊我们可以用用到里边的一些类啊。呃比如说什么类似的,对吧?那这后面要学的后面要学的这个容器啊容器的类 其他的这些这些我就不试了,大家自己试吧。啊这个可敲可不敲就大家理解了怎么办?理解了导入同名类该怎么办? 我们就只能用什么?用包名前面把这个包名写全了。好吧,前面把这个包名写全了,这个代码其实,嗯, 我就把这个例子删了,没什么用。其实好,下面还有一个,我现在就删了,大家不用太看了啊, 因为我已经把那个刚刚那个,呃,这个也说清楚了啊,如果重复的话,大家这么写,然后心也给大家放好这个单位就可以。 然后还有一个小内容,叫什么呢?叫静态导入,叫 stabby。 那这个什么意思呢?呃,一点五之后新加的,现在你估计也碰不到一点五之前的了,所以就我们就直接说吧。呃,作用,它的作用就是什么呢?就是用来导入指定类的 静态属性静态方法,这样就我们就可以直接使用了。我们可以直接使用静态属性静态方法什么意思呢?大家看一下我这这个代码 import 屁股后面加了个 static, 然后大家看,加完点儿烂点儿, mess 点儿芯儿主子意,什么意思呢?导入 mess 下面的所有的静态的属性,静态的方法我就可以下面直接用了,比如大家看以前我们是不是敲 mess 点儿烂的,我们有了它以后呢?我 mess 点儿就不要了, 直接写软斗,好吧,哎,可以写点心,或者你想导入哪个写哪个点派,这样都可以,这个咱们可以。 哎,对啊,放到这来,比如我在下面 使用啊,使用我的什么呢?以前我们是比如要用,要用这个派,是不是 mass 点派啊?现在不用了,我这输入的派就行了,我就知道啊,是他的派,是不是?然后呢,我还可以使用什么呢?有 mass 点儿 random。 咱们以前是不是这么写啊? 是不是现在我可以也可以不写了,直接乱等?为什么呢?因为我这点心啊,他里边的这个都倒过来,对吧?我可以单单看,我可以单击右键,单击左键,按住 ctrl 键点击,他看到没有?这是他的代码,我可以看他的代码。然后呢, 大家看奥特加七啊,奥特加七呢?可以看这个这个类的一个结构,大家看这左侧左下角,这全都是他的方法, 看到没有?那全都是他的一遍方法啊。大家可以看到他这里边的方法大多数都是什么,都是 static, 看到没有?都是 static, 我们可以直接。直接什么呢?静态导入,也可以直接使用,好不好? 错了,好,这是关于导入的一些基本的语法啊,同学们呢?把这个测试一下, 知道这些语法就可以了。后面我也是那句话,离都离不开,天天在要我们建议任何这个项目都是包结构都是很完整的。