1

我正在尝试为“忘记”检查失败的 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_IsInstance( isinstance) 失败?可定制的异常是最好的,但内置的也可以。

4

0 回答 0