簡體   English   中英

isinstance with docx.Document class

[英]isinstance with docx.Document class

在腳本中,當變量的類型為 Document 時,我想運行某些行。 但是,無論輸入如何,此檢查始終返回 false。

from docx import Document
from docx import Document as _Document

document = Document('use_this_doc.docx') 
isinstance (document, _Document)

type(document)返回docx.document.Document

isinstance(document, _Document)返回False ,而我希望它返回True isinstance(document, type(Document))也返回False

在指定的情況下,如何調整代碼以使其返回 True?

Document 是打開文檔的助手 function。 它返回一個 docx.document.Document 類型的 object。

docx.Document (一個函數)與docx.document.Document (一個類型)不同。

調用isinstance(document, Document)會產生錯誤,因為第二個參數必須是類型。

from docx import Document
import docx
print("docx.Document =>", type(docx.Document))
print("docx.document.Document =>", type(docx.document.Document))
document = Document('use_this_doc.docx') 
print(type(document), isinstance(document, docx.document.Document))

Output:

docx.Document => <class 'function'>
docx.document.Document => <class 'type'>

<class 'docx.document.Document'> True

您創建了 2 個具有不同名稱的相同類。 Document 的實例不再是 _Document 的實例,A 的實例是 B 的實例,即使 A 和 B 的定義相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM