Вопрос

I'm working on a function in which i would like to know if an object is an instance of re.MatchObject. I tried to use isinstance but re.MatchObject is a C type and this does not work.

I still can do an alternative test like hasattr( ... , 'pos') or any other re.MatchObject attribute, but i don't consider it as a good solution. Any other way ?

Это было полезно?

Решение

You'd need to use the proper type; the match object type is not explicitly importable, but you can use type() on an existing instance to store it:

import re

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

then use that in isinstance() tests:

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

There is nothing about C-defined Python types that prevents using isinstance() otherwise.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top