Python **無原生多行註解語法** (如 C /* ... */),但慣用三引號字串字面值達成同樣效果,並兼具文件字串功能。本文釐清三引號與 # 的語意差異、PEP 257 文件字串規範、IDE 區塊折疊技巧與專案級註解策略。
#
# 這是單行註解
x = 1 # 行尾註解
# 至行尾內容。\"\"\" ... \"\"\" 或 ''' ... '''
"""
這是多行註解區塊
第 2 行
第 3 行
"""
__doc__、help()、Sphinx 等工具提取。
def fetch_user(user_id):
"""根據 ID 取得使用者資料。
Args:
user_id (int): 使用者唯一識別碼。
Returns:
dict: 使用者資料字典,找不到回傳 None。
Raises:
ValueError: user_id 非正整數。
"""
if user_id <= 0:
raise ValueError("user_id must be positive")
# ...
"""做一件事。""" (結尾句點)。""" 而非 ''' (一致性)。主流 IDE (PyCharm, VS Code, Spyder) 支援以註解標記折疊區域:
# region 資料庫連線設定
DB_HOST = "localhost"
DB_PORT = 5432
# endregion
# region 輔助函數
def helper(): ...
# endregion
Fold Level 或內建 # region 支援 (1.60+)。
# type: ignore # 告訴 mypy 忽略此行型別錯誤
x = some_dynamic_call() # type: Any
| 場景 | 建議 |
|---|---|
| 模組/類別/公開函數 | **必寫** 完整 docstring (Google/NumPy/Sphinx 風格統一) |
| 私有函數/內部邏輯 | 單行 # 或簡短三引號 |
| 暫時停用程式碼區塊 | IDE 區塊註解功能 (Ctrl+/ 批次) 或 if False: 區塊 (保留語法高亮) |
| 法律/版權標頭 | 檔案頂端三引號區塊,含授權、作者、修改記錄 |