[英]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.