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() 不推荐,仅用于快速测试
相关推荐
wj3055853783 小时前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
为何创造硅基生物4 小时前
C语言 结构体内存对齐规则(通俗易懂版)
c语言·开发语言
吃好睡好便好4 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
星寂樱易李4 小时前
iperf3 + Python-- 网络带宽、网速、网络稳定性
开发语言·网络·python
仰泳之鹅4 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
qingfeng154154 小时前
企业微信机器人开发:如何实现自动化与智能运营?
人工智能·python·机器人·自动化·企业微信
之歆5 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
cen__y6 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
AI人工智能+电脑小能手6 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm