我正在研究一个函数,我想知道一个对象是否是 re.MatchObject 的实例。我尝试使用 isinstancere.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/

10-11 03:52