在 python-docx 裡有兩個東西都叫 Document,但它們角色不同:
- from docx import Document
這個 Document 通常是「入口函式(factory function)」:
用來 建立空白文件 或 讀取 docx。 - from docx.document import Document
這個 Document 才是「真正的類別(class/type)」:
用來做 isinstance() 判斷、type hint。
因此才會出現常見錯誤:把函式拿去當 isinstance() 的第二參數。
最推薦的寫法:用別名把角色分清楚
from docx import Document as load_doc
from docx.document import Document as DocxDocument
# 讀/建文件:用 load_doc
doc = load_doc()
# 判斷型別:用 DocxDocument
print(type(doc))
print(isinstance(doc, DocxDocument)) # True可以在 Jupyter 直接驗證(會印出函式 vs 類別)
from docx import Document
from docx.document import Document as DocxDocument
print("Document =", Document)
print("type(Document) =", type(Document))
doc = Document()
print("type(doc) =", type(doc))
print("isinstance(doc, DocxDocument) =", isinstance(doc, DocxDocument))

推薦hahow線上學習python: https://igrape.net/30afN

![Python: 使用 flat_list.extend( List[pandas.Series] ) 實現 pandas.DataFrame 列擴展教學 Python: 使用 flat_list.extend( List[pandas.Series] ) 實現 pandas.DataFrame 列擴展教學](https://i1.wp.com/savingking.com.tw/wp-content/uploads/2025/04/20250421141348_0_14cedf.png?quality=90&zoom=2&ssl=1&resize=350%2C233)
![一文搞懂Python pandas.DataFrame去重:df.drop_duplicates() 與 df[~df.duplicated()] 的等價、差異與最佳實踐 一文搞懂Python pandas.DataFrame去重:df.drop_duplicates() 與 df[~df.duplicated()] 的等價、差異與最佳實踐](https://i1.wp.com/savingking.com.tw/wp-content/uploads/2025/08/20250808202701_0_66f9bc.png?quality=90&zoom=2&ssl=1&resize=350%2C233)

![Python Pandas GroupBy 的 size 陷阱:為什麼你的計數結果總是不對?如何計算重複次數? duplicates = df.duplicated( subset = [‘name’] ) Python Pandas GroupBy 的 size 陷阱:為什麼你的計數結果總是不對?如何計算重複次數? duplicates = df.duplicated( subset = [‘name’] )](https://i2.wp.com/savingking.com.tw/wp-content/uploads/2025/06/20250609143758_0_53821c.png?quality=90&zoom=2&ssl=1&resize=350%2C233)



![Python: pandas.DataFrame (df) 的取值: df [單一字串] 或df [list_of_strings] 選取一個或多個columns; df [切片] 或 df [bool_Series] 選取多個rows #bool_Series長度同rows, index也需要同df.index ,可以使用.equals() 確認: df.index.equals(mask.index) Python: pandas.DataFrame (df) 的取值: df [單一字串] 或df [list_of_strings] 選取一個或多個columns; df [切片] 或 df [bool_Series] 選取多個rows #bool_Series長度同rows, index也需要同df.index ,可以使用.equals() 確認: df.index.equals(mask.index)](https://i0.wp.com/savingking.com.tw/wp-content/uploads/2025/04/20250420212553_0_6fb2c3.png?quality=90&zoom=2&ssl=1&resize=350%2C233)

近期留言