0

我在我的应用程序中使用 cElementTree 来解析 XML 文件,它运行良好,但是,现在我想编写一些单元测试来检查我的方法的结果是否返回预期的结果。

在我的一个测试中,我想检查从树中检索到的元素是否确实是 Element 类型:

self.assertIsInstance(myElem, Element, 'Incorrect type for myElem')

当我执行测试时,我收到以下错误:

TypeError: isinstance() arg 2 must be a class, type or tuple of classes and types.

如果 Element 不是类或类型,那么它是什么?我在文档中找不到有关此的许多详细信息。

4

1 回答 1

1

我从源代码中找到了这段摘录,文件:ElementTree.py

##
# Element factory.  This function returns an object implementing the
# standard Element interface.  The exact class or type of that object
# is implementation dependent, but it will always be compatible with
# the {@link #_ElementInterface} class in this module.
# <p>
# The element name, attribute names, and attribute values can be
# either 8-bit ASCII strings or Unicode strings.
#
# @param tag The element name.
# @param attrib An optional dictionary, containing element attributes.
# @param **extra Additional attributes, given as keyword arguments.
# @return An element instance.
# @defreturn Element

def Element(tag, attrib={}, **extra):
    attrib = attrib.copy()
    attrib.update(extra)
    return _ElementInterface(tag, attrib)

所以,Element归根结底是工厂方法。

于 2015-12-22T12:59:41.050 回答