Day 30 训练
Day 30 训练
- 模块和库的导入
- 一、导入官方库的三种手段
- 1. 直接导入整个库
- 2. 导入库中的特定模块或函数
- 3. 导入库并起别名
- 二、导入自定义库/模块的方式
- 1. 同一目录下导入
- 2. 不同目录下导入
- 方法一:添加模块路径到 `sys.path`
- 方法二:使用相对导入
- 三、导入库 / 模块的核心逻辑
- 四、注意事项
模块和库的导入
在 Python 编程中,模块和库的导入是基础且关键的操作。灵活掌握不同的导入方式,能让我们的代码更加简洁、高效,也能方便地复用各种功能强大的模块和库。今天,就让我们深入探索 Python 模块和库导入的奥秘。
一、导入官方库的三种手段
Python 的标准库非常丰富,提供了大量的模块供我们使用。以下是导入官方库的三种常见方式:
1. 直接导入整个库
使用 import library_name
语法,可以将整个库导入到当前命名空间。例如:
import math
这样,我们就可以使用 math
库中的各种数学函数了,比如计算平方根:
result = math.sqrt(16)
print(result) # 输出:4.0
2. 导入库中的特定模块或函数
如果只需要使用库中的某些特定模块或函数,可以使用 from library_name import module_name
或 from library_name import function_name
。例如:
from math import sqrt
result = sqrt(16)
print(result) # 输出:4.0
这种方式可以避免引入整个库,减少内存占用。
3. 导入库并起别名
为了使代码更简洁,可以使用 import library_name as alias
为导入的库指定一个别名。例如:
import math as m
result = m.sqrt(16)
print(result) # 输出:4.0
别名可以根据个人习惯或行业惯例来选择,常见的如将 numpy
起别名为 np
,将 pandas
起别名为 pd
等。
二、导入自定义库/模块的方式
除了官方库,我们还可以导入自己创建的库或模块。
1. 同一目录下导入
如果自定义模块与当前脚本位于同一目录下,可以直接使用 import module_name
来导入。例如,假设在同一目录下有一个名为 mymodule.py
的模块,其中定义了一个函数 myfunction
,我们可以在当前脚本中这样导入并使用它:
import mymodule
mymodule.myfunction()
2. 不同目录下导入
当自定义模块位于不同目录时,就需要进行一些额外的设置。
方法一:添加模块路径到 sys.path
可以通过将模块所在目录添加到 sys.path
中来实现导入。sys.path
是一个列表,包含了 Python 解释器会搜索模块的目录路径。例如:
import sys
sys.path.append('/path/to/your/module_directory')
import your_module
这里需要注意的是,路径需要是相对于当前工作目录的绝对路径或正确相对路径。
方法二:使用相对导入
如果模块位于包的子目录中,可以使用相对导入。例如,假设有一个包结构如下:
mypackage/__init__.pysubmodule1/__init__.pymoduleA.pysubmodule2/__init__.pymoduleB.py
在 moduleB.py
中,可以使用相对导入来导入 moduleA.py
中的某个函数:
from ..submodule1.moduleA import some_function
但需要注意的是,相对导入通常在包内使用,且 Python 解释器会根据当前模块的层级来解析相对路径。
三、导入库 / 模块的核心逻辑
Python 解释器会根据 sys.path
中的目录来查找模块。sys.path
包括 Python 解释器的安装目录、当前工作目录等。如果自定义模块不在这些目录中,就需要手动添加模块路径到 sys.path
。
import sys
print(sys.path) # 查看当前的模块搜索路径
四、注意事项
- 确保
subdir
和submodule
目录下有__init__.py
文件:这样 Python 才会将它们识别为包。__init__.py
可以是空文件,它的存在主要是为了告诉 Python 这是一个包目录。 - 使用
sys.path.append()
时路径要正确:路径必须是相对于当前工作目录的绝对路径或正确的相对路径。
浙大疏锦行