【从零学习python 】34.Python模块的导入和使用方法详解

2024-02-29 17:11:17 浏览数 (1)

Python中的模块

在Python中有一个概念叫做模块(module)。

说的通俗点:模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块

比如我们经常使用工具 random,就是一个模块。使用 import random 导入工具之后,就可以使用 random 的函数。

导入模块

1. 导入模块有五种方式
  • import 模块名
  • from 模块名 import 功能名
  • from 模块名 import *
  • import 模块名 as 别名
  • from 模块名 import 功能名 as 别名
2. import

在Python中用关键字import来引入某个模块,比如要引入系统模块 math,就可以在文件最开始的地方用import math来引入。

语法:

代码语言:javascript复制
import 模块1,模块2,...  # 导入方式

模块名.函数名()  # 使用模块里的函数

想一想:

为什么必须加上模块名调用呢?

答:

因为可能存在这样一种情况:在多个模块中含有相同名称的函数,此时如果只是通过函数名来调用,解释器无法知道到底要调用哪个函数。所以如果像上述这样引入模块的时候,调用函数必须加上模块名

示例:

代码语言:javascript复制
import math

#这样才能正确输出结果
print(math.sqrt(2))

#这样会报错
print(sqrt(2))
3. from…import

有时候我们只需要用到模块中的某个函数,只需要引入该函数即可,此时可以用下面方法实现:

代码语言:javascript复制
from 模块名 import 函数名1,函数名2....

不仅可以引入函数,还可以引入一些全局变量、类等

注意:

通过这种方式引入的时候,调用函数时只能给出函数名,不能给出模块名,但是当两个模块中含有相同名称函数的时候,后面一次引入会覆盖前一次引入。也就是说假如模块A中有函数function(),在模块B中也有函数function(),如果引入A中的function在先、B中的function在后,那么当调用function函数的时候,是去执行模块B中的function函数。

例如,要导入模块fibfibonacci函数,使用如下语句:

代码语言:javascript复制
from fib import fibonacci

注意:不会把整个fib模块导入到当前的命名空间中,它只会将fib里的fibonacci单个函数引入

4. from … import *

把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:

代码语言:javascript复制
from modname import *

注意:这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。

5. as 别名
代码语言:javascript复制
import time as tt  # 导入模块时设置别名为 tt

tt.sleep(1)  # 使用别名才能调用方法

from time import sleep as sp  # 导入方法时设置别名

sp(1)  # 使用别名才能调用方法

当一个模块很长,我们只需要其中的某个函数,但函数名比较长或者不够直观,这时可以使用as关键字为函数设置别名,使得函数的调用更加方便和简洁。

例如,如果我们导入了模块numpy并使用import numpy as np,那么我们就可以通过np.array()来调用numpy模块中的array函数。

总结一下
  • 使用import导入整个模块时,需要使用模块名.函数名()的方式来调用模块中的函数。
  • 使用from 模块名 import 函数名可以直接使用函数名来调用模块中的函数。
  • 使用from 模块名 import *可以导入模块中的所有函数,但不推荐使用。
  • 使用import 模块名 as 别名可以为模块设置别名,使用别名.函数名()来调用模块中的函数。
  • 使用from 模块名 import 函数名 as 别名可以为函数设置别名,使用别名来调用函数。

这些导入模块的方式可以根据实际需求来选择,灵活运用能让我们的代码更加清晰、简洁和易读。

0 人点赞