°

python导入模块详解

2019年课程规划及价格说明


PHP实战视频教程大全

我们有通过以下案例来为大家深入讲解python中模块的导入:

首先我们有一个事先写好的模块文件 my_module.py

print('导入 my_module')

str = 'Tongpan Kt'

def find_index(search_list, target):

      for i, value in enumerate(search_list):

           if value == target:

               return i

       return -1

以上的python代码就是我们的my_module.py文件的内容,代码不完整,因为要讲模块导入嘛,但是我们可以大概的看出,这个代码的用意,就是在数组中查找一个元素在该数组中的位置下标的值。

接着我们再来创建一个文件intro.py,并尝试在新文件中使用my_module.py中的函数并将该模块导入:

该文件代码如下:

intro.py

kecheng = [‘lishi’, ‘shuxue’, ‘yuwen’, ‘yingyu’]

如果我们要使用另一个文件的函数或是其他对象,那么我们就需要将该文件作为一个模块导入到当前文件当中,引入的方法为,在需要引入模块的文件顶部,也就是在intro.py文件中的代码前面:

import my_module  即可,其中import是关键字,意味导入,后面是要导入的模块的文件名。

现在我们来运行一下intro.py,你会先看到,my_module.py文件中的

print(‘导入 my_module’)被执行,得到结果:

导入 my_module

下面我们看看怎么在intro.py文件里面使用被导入的文件的函数:

index = my_module.find_index(kecheng, 'yuwen')
print(index)

上面的一段代码就是使用被导入的模块的函数的方法:模块名称.函数名(参数1, 参数2…)

打印输出的结果为:2 因为yuwen在kecheng列表里面的索引下标为2

同时我们有时候觉得模块名称有点冗长,如果调用次数多了的话代码就会不够精简,所以我们还可以为导入的模块取一别名,通过as关键字可以实现取别名的操作:

import my_module  as mm

也就是模块名称被简化成了mm,再调用模块里面的函数的时候我们就可以:

index = mm.find_index(kecheng, ‘yuwen’)

有时候我们只需要使用到模块文件当中的一个函数,那么如果我们依然引入整个模块就有些浪费资源了,我们可以针对性的引入模块文件中我们需要的代码,比如在intro.py文件中,我们只想用my_module.py模块中的find_index()函数,我们则可以这样只导入该函数:

from my_module import finde_index     意思就是导入my_module模块中的find_index方法

那么在这种情况下,没有被导入的数据你就没有办法在intro.py文件中使用,而只能使用find_index()这个被导入的函数,比如在我们的my_module.py文件中有一个变量:str,如果你尝试在只导入find_index()函数的情况下使用该变量则会提示不存在错误。

那么如果你想把这个字符串变量也导入的话可以这样,导入多个数据:

from my_module import finde_index, str

这是你就可以在intro.py文件中使用该字符串了。同样的道理,如果你觉得函数或是字符串的名称太长了,依然可以通过我们前面说的通过as关键字来取别名的方式进行精简:

from my_module import finde_index as fi, str

index = fi(kecheng, ‘yingyu’)

尝试打印输出发现结果没变。

如果你想导入模块文件中的所有的内容,还可以通过*通配符来表示,如:

from my_module import *

在运行之前的代码,发现依然可以正常使用,但是这种方法并不推荐使用,因为没有直接声明导入具体的函数或是字符串的方式直接,可读性不够好,作为了解即可。

打赏
  喜欢