yolov8中的python基础--模块导入篇
import
语句有几种不同的写法,它们有不同的用途和优势。
1. 直接 import
语法
import module_name
用途
导入整个模块,使用时需要通过模块名访问其中的内容。
示例
import os
print(os.listdir()) # 必须用 `os.` 前缀
适用场景
-
当需要频繁使用模块中的多个功能时
-
避免命名冲突(因为所有功能都带有模块名前缀)
2. import ... as ...
(别名导入)
语法
import module_name as short_name
用途
给模块起一个别名,简化代码或避免命名冲突。
示例
import numpy as np # 用 `np` 代替 `numpy`
arr = np.array([1, 2, 3]) # 比 `numpy.array` 更简洁
适用场景
-
模块名较长时(如
matplotlib.pyplot
→plt
) -
避免命名冲突(例如,你的代码里也有一个
random
变量,但你想用 Python 的random
模块)
3. from ... import ...
(精确导入)
语法
from module_name import function_name
用途
只导入模块中的特定功能,而不是整个模块,使用时不需要模块名前缀。
示例
from math import sqrt
print(sqrt(16)) # 可以直接用 `sqrt`,不需要 `math.sqrt`
适用场景
-
只需要模块中的少数几个功能时
-
希望代码更简洁(减少前缀)
4. from ... import ... as ...
(精确导入 + 别名)
语法
from module_name import function_name as short_name
用途
导入模块的某个功能,并给它起别名。
示例
from matplotlib.pyplot import plot as plt_plot
plt_plot([1, 2, 3], [4, 5, 6]) # 避免和 `plot` 变量冲突
适用场景
-
模块中的某个函数名太长(如
plt.plot
→plt_plot
) -
避免命名冲突(例如,你的代码里也有
plot
变量)
5. from ... import *
(全部导入)
语法
from module_name import *
用途
导入模块的所有功能,使用时不需要模块名前缀。
示例
from math import *
print(sqrt(16)) # 直接使用 `sqrt`,不需要 `math.`
print(sin(1.57)) # 直接使用 `sin`
适用场景
-
快速测试代码时
-
某些特殊库(如
tkinter
或pygame
常用from ... import *
)
总结对比
导入方式 | 示例 | 访问方式 | 适用场景 |
---|---|---|---|
import module | import os | os.listdir() | 需要模块的多个功能 |
import module as short | import numpy as np | np.array() | 模块名太长或避免冲突 |
from module import func | from math import sqrt | sqrt() | 只需要少量函数 |
from module import func as short | from matplotlib.pyplot import plot as plt_plot | plt_plot() | 函数名太长或避免冲突 |
from module import * | from math import * | sqrt() , sin() | 不推荐,仅用于快速测试 |