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.pyplotplt

  • 避免命名冲突(例如,你的代码里也有一个 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.plotplt_plot

  • 避免命名冲突(例如,你的代码里也有 plot 变量)


5. from ... import *(全部导入)

语法

复制代码
from module_name import *

用途

导入模块的所有功能 ,使用时不需要模块名前缀

示例

复制代码
from math import *
print(sqrt(16))  # 直接使用 `sqrt`,不需要 `math.`
print(sin(1.57))  # 直接使用 `sin`

适用场景

  • 快速测试代码时

  • 某些特殊库(如 tkinterpygame 常用 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() 不推荐,仅用于快速测试
相关推荐
共享家952714 小时前
搭建 AI 聊天机器人:”我的人生我做主“
前端·javascript·css·python·pycharm·html·状态模式
疯狂的喵14 小时前
C++编译期多态实现
开发语言·c++·算法
2301_7657031414 小时前
C++中的协程编程
开发语言·c++·算法
m0_7487080514 小时前
实时数据压缩库
开发语言·c++·算法
Hgfdsaqwr15 小时前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
lly20240615 小时前
jQuery Mobile 表格
开发语言
一晌小贪欢15 小时前
Python 测试利器:使用 pytest 高效编写和管理单元测试
python·单元测试·pytest·python3·python测试
小文数模15 小时前
2026年美赛数学建模C题完整参考论文(含模型和代码)
python·数学建模·matlab
惊讶的猫15 小时前
探究StringBuilder和StringBuffer的线程安全问题
java·开发语言
Halo_tjn15 小时前
基于封装的专项 知识点
java·前端·python·算法