Python import与from import使用及区别详解

竹里
竹里
发布时间:2026-10-13| 4人浏览过
原创

本文详细解析Python中import与from import两种模块导入方式的区别。通过random和sklearn实例说明语法差异,重点解释为何import sklearn后无法直接通过sklearn.datasets访问属性,揭示模块内部__init__.py配置对导入行为的影响,帮助开发者避免常见导入错误。

本文将深入探讨Python中import与from import的具体用法及其核心区别。

Python程序运行依赖于一组内建函数(如print()、input()和len()等)。此外,Python标准库提供了丰富的内置模块,每个模块本质上是一个包含相关函数的Python程序,可直接嵌入到用户代码中。例如,math模块提供数学运算函数,random模块提供随机数生成函数等。

一、import语句的基本使用

在调用模块中的函数前,必须首先通过import语句导入该模块。

其标准语法格式如下:

import module1[, module2[,... moduleN]]

具体示例如下:

1、调用random模块中的randint()函数:

# printRandom.py
import random
for i in range(5):
  print(random.randint(1, 10))
# result:

注意:由于randint()函数归属于random模块,因此在调用时必须加上random前缀,以明确告知Python解释器在random模块中查找该函数。

2、同时导入多个模块:

import math, sys, random, os

二、from import语句的高级用法

这是模块导入的另一种常见形式。使用from import语法时,调用模块内的函数无需添加moduleName前缀。然而,为了保持代码的可读性,通常建议使用标准的import语句形式。

其语法结构为:

from moduleName import name1[, name2[, ... nameN]]|*

具体示例如下:

导入random模块下的所有函数:

from random import *
for i in range(5):
  print(randint(1, 10)) # 这里就不需要random.前缀了

仅导入random模块下的randint和random函数:

from random import randint, random

接下来,我们将深入分析Python中import与from import的具体区别。

查阅相关资料后,发现这似乎是一个基础问题,网络上的普遍解释如下,这也是我之前的理解:

假设存在一个名为numpy的包,其中包含一个zeros函数。

1、使用from numpy import zeros

此时可以直接调用zeros()函数。

2、使用import numpy.zeros

此时必须使用全名numpy.zeros进行调用。

但在实际使用中,我遇到了意想不到的问题。

from sklearn import datasets
a=datasets.load_digits()
print(a)

这段代码运行正常:

然而,下面的代码却报错:

import sklearn
a=sklearn.datasets.load_digits()
print(a)

报错信息为:AttributeError: module 'sklearn' has no attribute 'datasets'

这令人困惑,通常认为执行import sklearn后,应该可以通过点号访问sklearn内的所有内容,就像在numpy中那样。作为初学者,我不明白原因,恳请高手解答,非常感谢!

尝试以下写法也会报错:

import sklearn.datasets
a=datasets.load_digits()
print(a)
NameError: name 'datasets' is not defined

总结

以上内容介绍了Python中import与from import的使用方法及区别,希望能对大家有所帮助。如有任何疑问,欢迎留言,小编会及时回复。同时感谢大家对本站的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。