Python:在基于C的类型MatchObject上使用isinstance

时间:2013-04-22 08:50:36

标签: python regex isinstance

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

我仍然可以执行替代测试,例如hasattr( ... , 'pos')或任何其他re.MatchObject属性,但我不认为这是一个很好的解决方案。 还有别的吗?

1 个答案:

答案 0 :(得分:5)

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

import re

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

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

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

没有任何关于C定义的Python类型,否则会阻止使用isinstance()