- 模块:包含Python代码的文件,可以导入其他模块并使用其函数和变量。
- 包:用于组织模块的文件夹,包含多个模块和一个
__init__.py
文件
模块与包
在Python中,模块和包是用于组织代码的重要工具,它们有助于将相关的函数、类和变量分组在一起,从而提高代码的可读性、可维护性和重用性。
模块
模块是一个包含Python定义和语句的文件,其扩展名通常为.py
。模块是组织代码的基本单元,允许你将相关的函数和类分组在一起,并通过import
语句在其他文件中使用它们。
例如,如果你有一个名为my_module.py
的文件,其中定义了一个函数say_hello()
,你可以在其他Python文件中这样使用它:
# 在另一个Python文件中
import my_module
my_module.say_hello() # 调用my_module中的函数
你还可以使用from ... import ...
语句来导入模块中的特定部分:
from my_module import say_hello
say_hello() # 直接调用函数,无需前缀
Python标准库包含了大量的内置模块,如os
、sys
、math
等,用于执行常见的任务。此外,你也可以创建自定义模块来满足特定需求。
包
包是一个包含多个模块的目录(文件夹),用于组织更大规模的代码库。包必须包含一个__init__.py
文件(即使它是空的),这个文件告诉Python这个目录应该被当作一个包来处理。
包的主要优势在于它们允许你创建层次化的模块结构,从而更有效地组织和管理代码。例如,你可以有一个名为my_package
的包,其中包含多个模块:
my_package/
__init__.py
module1.py
module2.py
subpackage/
__init__.py
module3.py
在__init__.py
文件中,你可以定义__all__
变量来指定当使用from package import *
语句时应该导入哪些模块。此外,你还可以在__init__.py
中编写代码来初始化包或定义包级别的函数和变量。
导入包中的模块时,你需要使用点号来指定包的层次结构:
from my_package