Интересно, какой правильный питонический метод обратной и прямой совместимости, как проверить, скомпилирован ли объект re
объект.
] isinstance
метод не может быть легко использован, в то время как результирующий объект утверждает, что это _sre.SRE_Pattern
объект:
>>> import re
>>> rex = re.compile('')
>>> rex
<_sre.SRE_Pattern object at 0x7f63db414390>
, но такого нет:
>>> import _sre
>>> _sre.SRE_Pattern
AttributeError: 'module' object has no attribute 'SRE_Pattern'
>>> import sre
__main__:1: DeprecationWarning: The sre module is deprecated, please import re.
>>> sre.SRE_Pattern
AttributeError: 'module' object has no attribute 'SRE_Pattern'
>>> re.SRE_Pattern
AttributeError: 'module' object has no attribute 'SRE_Pattern'
Я не хочу использовать утку набор текста (то есть проверка доступности некоторых конкретных методов), потому что это может конфликтовать с некоторыми другими типами.
Сейчас я использую:
>>> RegexpType = type(re.compile(''))
>>> type(rex) == RegexpType
True
, но может быть способ получше ..