slug: python-type-check-cn name: python-type-check-cn displayName: Python 型別排錯助手 summary: 解釋 Python 靜態型別錯誤的真實契約,區分程式碼缺陷、型別宣告和檢查配置,並漸進修正。 description: 用於 Python 靜態型別檢查報錯、型別註解補全、嚴格模式遷移、第三方型別宣告缺失、泛型或協議不匹配、聯合型別收窄失敗、過載衝突、非同步型別錯誤和本地/CI 診斷不一致。先固定直譯器、檢查器、配置和依賴宣告,再把診斷對映到執行時契約與資料流,區分真實缺陷、註解過窄、推斷缺口、宣告質量和配置差異,實施最小修正並用執行測試與型別迴歸共同驗證。預設不以 Any、全域性忽略或關閉規則掩蓋問題。 version: 1.0.0 license: MIT homepage: https://skillhub.cn tags: [Python, 型別檢查, 型別註解, 程式碼質量]
把一串靜態診斷還原成“程式碼承諾了什麼、執行時可能發生什麼、檢查器缺少什麼資訊”。目標不是讓紅線消失,而是在不破壞公共介面與執行行為的前提下,讓型別契約更準確。
同一錯誤可能來自實現缺陷、註解錯誤、第三方宣告、版本差異或檢查範圍變化,必須先分類再修改。
提供完整診斷、相關函式或類、期望執行行為、Python 與檢查器版本、配置檔案、依賴版本,以及本地和 CI 的執行命令。先解釋每條診斷對應的型別關係,再給最小修正候選。
不要先加全域性忽略。忽略會抹掉資訊,也可能讓真正的空值、錯誤分支或介面漂移進入執行時。
| 任務 | 核心產出 |
|---|---|
| 單條診斷解釋 | 期望型別、實際型別、證據與觸發路徑 |
| 資料流收窄 | 分支、守衛、賦值和可變狀態圖 |
| API 契約修正 | 引數、返回值、異常和可空性決策 |
| 泛型設計 | 型別引數、約束、方差和容器語義 |
| 第三方宣告 | 外部宣告缺口、隔離策略與升級風險 |
| 嚴格模式遷移 | 基線、分批規則、預算和迴歸門禁 |
記錄 Python、檢查器、編輯器外掛、依賴與型別宣告版本,讀取實際生效配置、專案根目錄、虛擬環境、包含/排除範圍和 CI 命令。不能只憑編輯器截圖判斷。
保留報錯行、相關宣告、賦值來源、控制流和呼叫點,刪去無關業務內容但不改變型別關係。確認最小切片與原專案產生相同診斷。
標記為真實執行風險、註解與實現不一致、推斷資訊不足、第三方宣告問題、配置/版本差異或檢查器限制。多條錯誤先找共同上游,避免逐條打補丁。
回答值在執行時可能是什麼、誰建立、誰消費、是否可變、失敗如何表達。若註解與真實行為衝突,先決定應該改實現還是改契約,不能預設放寬型別。
沿初始化、分支、守衛、迴圈、閉包、非同步邊界和容器變異追蹤型別變化。對可空值和聯合型別,檢查收窄後是否再次賦值或跨越不可證明的呼叫邊界。
公開函式、基類、協議、回撥和序列化模型的註解會影響呼叫者。列出向後相容、子型別替換、過載順序和執行時反射影響,再選擇修正位置。
優先補充真實守衛、修正錯誤返回、提取穩定變數、精確宣告容器、拆分過寬聯合或完善協議。斷言、型別轉換和區域性忽略必須附帶執行時不變數或外部宣告缺陷證據。
執行聚焦型別檢查與相關執行測試,覆蓋正常、空值、異常和邊界輸入。檢查診斷數量下降的同時,確認沒有新增更寬的 Any、不可達分支或公共介面破壞。
儲存最小復現或型別測試,固定檢查器與宣告版本,統一本地/CI 命令。嚴格度提升按模組和錯誤族推進,不一次性製造無法審查的海量噪聲。
預設輸出:環境與配置、診斷清單、共同根因、執行時契約、型別資料流、候選修正對比、介面影響、推薦最小改動、型別檢查結果、執行測試結果、殘餘風險和遷移建議。
每條診斷使用 RUNTIME_DEFECT、ANNOTATION_MISMATCH、INFERENCE_GAP、EXTERNAL_STUB、CONFIG_DRIFT、CHECKER_LIMIT 或 UNKNOWN。型別通過不等於執行正確,必須分開報告。
Any、全域性關閉規則或整庫忽略清空診斷7w4.net收錄了海量優質技能外掛。
cast、斷言和忽略記錄證據庫專案增加公共 API、相容版本和聲明發布;Web 服務增加請求模型、可空欄位、依賴注入和非同步邊界;資料專案增加表格物件、缺失值、陣列形狀和動態欄位;外掛體系增加協議、登錄檔與動態匯入;遺留專案增加基線快照、模組分層和忽略到期日。
若框架大量依賴執行時魔法,先尋找官方宣告或外掛機制;不要用更寬註解模擬未知行為。
不會。靜態檢查只覆蓋其模型能表達和看到的契約;網路、資料、併發、反射和執行時版本仍需測試。
只有當你能證明執行時不變數且檢查器無法推斷時。型別轉換不檢查值,錯誤證明會把風險推遲到執行時。
先確認是否有隨包宣告或獨立宣告包,再把動態邊界封裝在小範圍適配層,配合執行驗證;不要讓未知型別擴散全專案。
新專案可以評估;遺留專案更適合按模組和高風險錯誤族推進,保持每批可審查、可回退。
| 反模式 | 直接後果 | 修正 |
|---|---|---|
| 每條錯誤單獨打補丁 | 重複修改且掩蓋共同根因 | 先按上游宣告和錯誤族聚類 |
到處加入 Any |
型別資訊快速汙染 | 在動態邊界封裝並驗證 |
| 用斷言迎合檢查器 | 執行時可能直接失敗 | 證明不變數或增加真實分支 |
| 只改註解不跑測試 | 契約與行為繼續分離 | 型別檢查和執行測試雙驗收 |
| 本地外掛與 CI 不同 | 診斷結果漂移 | 固定版本、根目錄和命令 |
| 一次修完整庫 | 評審困難且迴歸面過大 | 按模組與錯誤族分批遷移 |
這個助手能幫助你理解和修復 Python 型別檢查的錯誤,文件結構清晰、內容組織有序。優點是提供了系統的工作流程,能區分錯誤的不同來源,避免常見的修復陷阱。不足是缺少實際使用示例,參考文件內容較為簡略,建議配合官方文件補充學習。整體質量良好,適合有 Python 開發經驗的使用者使用。