我正在研究一个函数,我想知道一个对象是否是 re.MatchObject
的实例。我尝试使用 isinstance
但 re.MatchObject
是 C 类型,这不起作用。
我仍然可以做一个替代测试,比如 hasattr( ... , 'pos')
或任何其他 re.MatchObject
属性,但我不认为它是一个好的解决方案。
还有什么办法吗?
最佳答案
您需要使用正确的类型;匹配对象类型不能显式导入,但您可以在现有实例上使用 type()
来存储它:
import re
MatchObject = type(re.search('', ''))
然后在
isinstance()
测试中使用它:>>> MatchObject = type(re.search('', ''))
>>> isinstance(re.search('', ''), MatchObject)
True
C 定义的 Python 类型没有任何内容会阻止使用
isinstance()
否则。关于Python : using isinstance on C based type MatchObject,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16142937/