一、什麼是模塊(Module)?
在 Python 中,一個 .py 文件就是一個模塊。比如你創建了一個 math_utils.py 文件,它就是一個名為 math_utils 的模塊。
示例:創建自己的模塊
新建文件 greet.py:
# greet.py
def say_hello(name):
return f"你好,{name}!"
def say_goodbye(name):
return f"再見,{name}!"
然後在另一個文件(如 main.py)中導入並使用:
# main.py
import greet
print(greet.say_hello("小明")) # 輸出:你好,小明!
二、導入模塊的幾種方式
1. import 模塊名
import greet
greet.say_hello("李華")
2. from 模塊名 import 函數名
from greet import say_hello
print(say_hello("王芳")) # 直接調用,無需前綴
3. from 模塊名 import *(不推薦)
會導入模塊中所有公開內容,容易造成命名衝突。
4. 給模塊起別名(常用)
import greet as g
print(g.say_goodbye("張偉"))
💡 提示:標準庫如
os、sys、json都是模塊,使用方式完全相同。
三、__name__ == '__main__' 的作用
你可能在別人代碼中見過這行:
if __name__ == '__main__':
# 測試代碼
print(say_hello("測試用户"))
它的意思是:只有當該文件被直接運行時,才執行下面的代碼;如果被導入,則跳過。
這樣可以讓模塊既可作為庫被導入,又可獨立運行進行測試。
四、什麼是包(Package)?
當項目變大,僅靠模塊不夠用了,就需要包——包含多個模塊的文件夾。
創建一個包
- 新建文件夾
mytools - 在其中創建
__init__.py(可以為空,但必須存在,表示這是一個包) - 添加模塊文件,如
string_utils.py、number_utils.py
目錄結構如下:
mytools/
├── __init__.py
├── string_utils.py
└── number_utils.py
使用包中的模塊
from mytools.string_utils import reverse_string
from mytools import number_utils
print(reverse_string("hello")) # 輸出:olleh
print(number_utils.is_even(10)) # 假設 is_even 是 number_utils 中的函數
✅
__init__.py的作用:
- 標識該目錄為 Python 包
- 可以控制
from mytools import *時導入哪些內容(通過__all__列表)
五、常用標準庫模塊推薦
Python 自帶大量實用模塊,無需安裝即可使用:
|
模塊
|
用途
|
|
|
操作系統接口(如讀取環境變量、路徑處理)
|
|
|
系統相關參數(如命令行參數)
|
|
|
數學運算(如 |
|
|
生成隨機數
|
|
|
處理日期和時間
|
|
|
解析和生成 JSON 數據
|
示例:
import random
print(random.randint(1, 100)) # 輸出 1~100 的隨機整數