使isinstance失败(以可自定义的方式)

时间:2017-04-05 12:41:09

标签: python exception testing isinstance

我正在尝试为Python C扩展编写回归测试,“忘记”检查PyObject_IsInstance的失败。但我唯一可以提出的是一个覆盖__instancecheck__的元类,例如:

import six

class InstanceCheckGoneWrong(type):
    def __instancecheck__(self, other):
        raise TypeError('isinstance failed')

@six.add_metaclass(InstanceCheckGoneWrong)
class FailingIsinstanceClass():
    pass

有效:

>>> isinstance(1, FailingIsinstanceClass)
TypeError: isinstance failed

但似乎很复杂。是否有更简单的方法(python2和python3兼容)让PyObject_IsInstanceisinstance)失败?可定制的异常是最好的,但内置也可以。

0 个答案:

没有答案