在 Python 中,模塊(module)和包(package)是組織和管理代碼的兩種方式。它們幫助開發者創建結構化、可維護和可復用的代碼。
模塊(Module)
模塊是包含 Python 代碼的文件,擴展名為 .py
。模塊可以包含變量、函數、類以及可執行代碼。模塊通過 import
語句引入,以便在其他 Python 文件中使用。
示例
假設有一個名為 my_module.py
的文件,內容如下:
# my_module.pydef greet(name):return f"Hello, {name}!"pi = 3.14159
你可以在另一個 Python 文件中導入和使用這個模塊:
# main.pyimport my_moduleprint(my_module.greet("Alice")) # 輸出: Hello, Alice!
print(my_module.pi) # 輸出: 3.14159
包(Package)
包是一個包含多個模塊的目錄。包通過一個特殊的 __init__.py
文件來標識,該文件可以是空的或包含初始化代碼。包允許組織和管理模塊,使得代碼更加結構化。
示例
假設有一個名為 my_package
的目錄,其結構如下:
my_package/__init__.pymodule1.pymodule2.py
其中,module1.py
和 module2.py
是兩個模塊,__init__.py
是包的初始化文件。
module1.py
內容:
# module1.pydef func1():return "Function 1"
module2.py
內容:
# module2.pydef func2():return "Function 2"
你可以在另一個 Python 文件中導入和使用這個包:
# main.pyfrom my_package import module1, module2print(module1.func1()) # 輸出: Function 1
print(module2.func2()) # 輸出: Function 2
區別
-
定義:
- 模塊是一個包含 Python 代碼的文件,擴展名為
.py
。 - 包是一個包含多個模塊的目錄,目錄中必須包含一個
__init__.py
文件。
- 模塊是一個包含 Python 代碼的文件,擴展名為
-
結構:
- 模塊是單個文件。
- 包是一個目錄,包含多個模塊以及一個
__init__.py
文件。
-
用途:
- 模塊用于組織和復用代碼,可以將相關的功能封裝在一個文件中。
- 包用于組織和管理多個模塊,提供分層次的結構,使得代碼庫更加清晰和可維護。
進一步說明
-
模塊導入:
import module_name from module_name import some_function
-
包導入:
import package_name.module_name from package_name.module_name import some_function
-
__init__.py
文件:__init__.py
文件可以是空的,但它的存在表明目錄是一個包。__init__.py
文件還可以包含包的初始化代碼,或用于定義包的公共接口。
總結來說,模塊和包都是組織代碼的基本單位,模塊是單個文件,而包是一個目錄,包含多個模塊。它們的結合使用可以使得 Python 項目的結構更加清晰和模塊化,有助于代碼的維護和重用。