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() 不推荐,仅用于快速测试
相关推荐
CodeCraft Studio5 分钟前
借助Aspose.HTML控件,在 Python 中将 HTML 转换为 Markdown
开发语言·python·html·markdown·aspose·html转markdown·asposel.html
QQ_4376643146 分钟前
C++11 右值引用 Lambda 表达式
java·开发语言·c++
aramae6 分钟前
大话数据结构之<队列>
c语言·开发语言·数据结构·算法
悠哉悠哉愿意24 分钟前
【电赛学习笔记】MaxiCAM 项目实践——与单片机的串口通信
笔记·python·单片机·嵌入式硬件·学习·视觉检测
封奚泽优29 分钟前
使用Python实现单词记忆软件
开发语言·python·random·qpushbutton·qtwidgets·qtcore·qtgui
Goona_1 小时前
拒绝SQL恐惧:用Python+pyqt打造任意Excel数据库查询系统
数据库·python·sql·excel·pyqt
liulilittle1 小时前
C++/CLI与标准C++的语法差异(一)
开发语言·c++·.net·cli·clr·托管·原生
daixin88482 小时前
什么是缓存雪崩?缓存击穿?缓存穿透?分别如何解决?什么是缓存预热?
java·开发语言·redis·缓存
你我约定有三2 小时前
RabbitMQ--消息丢失问题及解决
java·开发语言·分布式·后端·rabbitmq·ruby
xw33734095642 小时前
彩色转灰度的核心逻辑:三种经典方法及原理对比
人工智能·python·深度学习·opencv·计算机视觉