Python模块与包(Package)概念及导入用法详解
本文解析Python中模块与包的核心概念,详细对比import与from...import两种导入方式的区别。通过__init__.py文件说明包的创建机制,并演示如何正确调用包内函数与变量,帮助开发者规范代码结构。
模块的基本概念与导入方式
在Python中,模块(Module)是将多个函数或变量封装在一个文件中的基本单位。要使用模块中的功能,必须先将其引入当前环境。模块的使用通常涉及文件名与内部函数或变量的关联。
模块定义与基础调用
首先,我们需要定义一个包含函数和变量的模块文件(例如 funtions.py):
#定义函数
def show():
print("jack")
#定义变量
name = "tom"
引入该模块后,可以通过 模块名.函数名 或 模块名.变量名 的方式访问内容:
import funtions
funtions.show() # 输出: jack
print(funtions.name) # 输出: tom
另一种导入方式:from...import
除了直接引入模块,还可以使用 from ... import * 语法将模块内的所有名称直接导入当前命名空间:
#另外一种导入方式
from funtions import *
show() # 输出: jack
print(name) # 输出: tom
两种导入方式的差异分析
要理解这两种方式的区别,可以通过打印局部变量符号表(locals())和全局变量符号表(globals())来观察:
#打印局部变量符号表
print(locals())
#打印全局变量符号表
print(globals())
使用 import 时,模块名作为命名空间存在;而使用 from ... import * 时,模块内的函数和变量名直接成为当前脚本的全局变量。这解释了为什么后者可以直接调用 show() 而无需前缀。

包(Package)的概念与创建
当模块数量增多时,使用包(Package)来管理模块是必要的。包允许将同名模块放入不同的包中,从而避免命名冲突。理解包的关键在于理解命名空间的作用。
创建包与 __init__.py 文件
在集成开发环境(IDE)中,可以通过右键选择 New Python Package 来创建包。创建包时,系统会自动生成一个名为 __init__.py 的文件。
__init__.py 文件的内容通常为空,但其存在具有关键意义:它标识该目录是一个包,而不是一个普通的目录。只有包含此文件的目录才能被Python识别为可导入的包。
包内模块的引入与调用
将模块放入包中后,引入方式会发生变化。假设我们有一个名为 common 的包,其中包含 funtions.py 模块:
#引入地址 包名.文件名
import common.funtions
common.funtions.show()
或者,可以使用更简便的导入方式:
from common.funtions import *
show() # 直接使用函数
通过 包名.文件名 指定模块路径,可以清晰地管理大型项目中的代码结构。
以上就是Python模块与包概念及导入用法的详细内容,更多关于Python基础教程的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













