3

我正在研究一个函数,我想知道一个对象是否是re.MatchObject. 我尝试使用isinstance,但re.MatchObject它是 C 类型,这不起作用。

hasattr( ... , 'pos')我仍然可以进行类似或任何其他属性的替代测试re.MatchObject,但我不认为它是一个好的解决方案。还有什么办法吗?

4

1 回答 1

7

您需要使用正确的类型;匹配对象类型不是显式可导入的,但您可以type()在现有实例上使用来存储它:

import re

MatchObject = type(re.search('', ''))

然后在isinstance()测试中使用它:

>>> MatchObject = type(re.search('', ''))
>>> isinstance(re.search('', ''), MatchObject)
True

C 定义的 Python 类型并没有阻止使用isinstance()其他方式。

于 2013-04-22T08:57:43.847 回答