python 是docx.Document类示例

w8f9ii69  于 2022-12-10  发布在  Python
关注(0)|答案(1)|浏览(265)

在一个脚本中,当变量是Document类型时,我想运行某些行。2但是这个检查总是返回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,而我期望它返回Trueisinstance(document, type(Document))也返回False
如何调整代码,使其在指定的情况下返回True?

mzaanser

mzaanser1#

Document()是一个用于打开文档的辅助函数(不是class)。开发人员没有遵循PEP8命名约定,而是使用了类命名函数。它返回一个docx.document.Document类型的对象。

  • docx.document *(函数)与 * docx.document.document *(类型)不同。

呼叫isinstance(document, Document)会产生错误,因为第二个参数必须是型别。

import docx
from docx import Document

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))

输出:

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

<class 'docx.document.Document'> True

相关问题