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() 不推荐,仅用于快速测试
相关推荐
nwsuaf_huasir9 小时前
matlab构造带通巴特沃斯滤波器进行滤波
开发语言·matlab
救救孩子把9 小时前
从 JDK 8 到 JDK 23:HotSpot 垃圾回收器全景演进与深度剖析
java·开发语言·jvm·jdk
列兵阿甘9 小时前
知微传感Dkam系列3D相机SDK例程篇:Python设置相机触发模式
python·数码相机·3d
清辞8539 小时前
C++入门(底层知识C与C++的不同)
开发语言·c++·算法
fqbqrr9 小时前
2510C++,api设计原则,不除零
开发语言·c++
查士丁尼·绵10 小时前
笔试-精准核酸检测
python
科比不来it10 小时前
Go语言数据竞争Data Race 问题怎么检测?怎么解决?
开发语言·c++·golang
biter down10 小时前
c语言14:字符指针
c语言·开发语言
光军oi10 小时前
JAVA全栈JVM篇————初识JVM
java·开发语言·jvm