17

正規表現をコンパイルすると

>>> type(re.compile(""))
<class '_sre.SRE_Pattern'>

そして、その正規表現を関数に渡し、Mypy を使用して型チェックを行いたい

def my_func(compiled_regex: _sre.SRE_Pattern):

私はこの問題に遭遇しています

>>> import _sre
>>> from _sre import SRE_Pattern
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'SRE_Pattern'

インポートできるようです_sreが、何らかの理由SRE_Patternでインポートできません。

4

3 に答える 3

2

ええ、reモジュールが使用する型は実際には名前でアクセスできません。typing.re代わりに、型注釈に型を使用する必要があります。

import typing

def my_func(compiled_regex: typing.re.Pattern):
    ...
于 2016-09-15T23:48:31.250 に答える