1. import 的基本概念
在 Python 中,import
是一种用于引入其他模块或者包中定义的函数、类、变量等对象的关键字。通过 import,我们可以将其他模块中的代码导入到当前的程序中,以便在当前程序中使用这些代码。
import 语句的基本语法为:
import module_name
其中,module_name
是我们要导入的模块的名称。
1.1. import 的两种使用方法
在 Python 中,我们可以使用 import 有两种方式:
1.1.1. import 模块名
这种方式将整个模块导入到当前的程序中。
import math
上述代码将标准库中的 math 模块导入到当前程序中。在导入后,我们就可以使用 math 模块中定义的函数和常量。例如,我们可以使用 math 模块中的 sqrt()
函数计算平方根:
import math
x = math.sqrt(25)
print(x) # 输出:5.0
在上面的代码中,我们通过 import
将 math 模块导入后,就可以在代码中使用 math 模块中的函数 sqrt()
来计算平方根。
1.1.2. from 模块名 import 对象名
如果只需要使用模块中的某几个函数或者对象,可以使用这种方式将特定的函数或者对象导入到当前的程序中。
from math import sqrt
x = sqrt(25)
print(x) # 输出:5.0
在上面的代码中,我们使用 from
关键字将 math 模块中的 sqrt 函数导入到当前程序中。这样,我们就可以直接使用 sqrt 函数,而不需要使用模块名 math 调用该函数。
2. import 的工作原理
在 Python 中,当遇到一个 import 语句时,Python 解释器会按照以下步骤来执行:
2.1. 搜索模块路径
Python 解释器会按照一定的规则搜索模块,并找到第一个匹配的模块文件。
模块路径的搜索顺序如下:
当前目录
已安装的内置模块(如 math、random 等)
sys.path 变量中列出的目录
如果找不到指定的模块文件,则会抛出 ModuleNotFoundError
异常。
2.2. 编译模块文件
一旦找到了模块文件,Python 解释器会将该文件进行编译,并生成对应的字节码文件(.pyc),方便下次导入模块时快速加载。
2.3. 创建模块的命名空间
导入模块后,Python 解释器会创建模块的命名空间,并将模块中定义的函数、类、变量等对象放入该命名空间中。
3. import 自定义模块
除了可以导入 Python 标准库中的模块外,我们还可以自定义模块,并通过 import 导入到其他代码中使用。
假设我们有一个名为 my_module.py
的文件,其中定义了一个函数 hello()
,我们可以使用以下方式导入并调用该函数:
# my_module.py
def hello():
print("Hello, World!")
# main.py
import my_module
my_module.hello() # 输出:Hello, World!
在上面的代码中,我们使用 import 导入了自定义的模块 my_module
,并调用了其中定义的函数 hello()
。
总结
通过 import,我们可以在 Python 中灵活地使用其他模块中的函数、类、变量等对象。使用 import 语句,我们可以将整个模块导入到当前的程序中,也可以只导入特定的函数或者对象。import 的工作原理包括搜索模块路径、编译模块文件和创建模块的命名空间。