Python 3.6 中显式定义的已编译正则表达式的类型是什么?

Iva*_*van 0 python regex types python-3.x

我正在编写一个函数来处理预编译的正则表达式。我如何明确定义这一点?例如

def use_regular_expression(regular_expression: ???):
    pass
Run Code Online (Sandbox Code Playgroud)

我要写什么来代替“???” 只接受re.compile给定有效正则表达式字符串的输出?

print(type(re.compile('')))_sre.SRE_Pattern并且 PyCharm IDE 表明它是,re.__Regex但无论我尝试导入和指定它们的明显方式是什么,似乎都不起作用。

Iva*_*van 6

感谢将我的问题标记为与此问题重复的人(不幸的是,我自己没有找到它),我找到了@flying-sheep编写的正确答案(即正是我正在寻找的答案),让我引用对于那些可能偶然发现这个问题实例的人来说:

它是typing.re.Pattern

例如

from typing.re import Pattern

my_re = re.compile('foo')
assert isinstance(my_re, Pattern)
Run Code Online (Sandbox Code Playgroud)