前言
今天学习到re.compile()发现,search,findall 等方法都可以直接使用pattern,re.compile貌似没有存在的必要。
探索
通过在网上搜索re.compile,发现re.compile的作用确实可有可无,因为对于search,find all等方法本身就会调用compile,而且当多次调用时也不需要重复编译正则表达式,而是去缓存区查找编译好的表达式。因此re.compile的作用大致有2个:
1.对于一个数据量较大的数据,compile可以省去查找缓存区的
这部分时间,(实际这点时间影响不大)。
2.用于绑定到其他的可重用的名称上(很多人用他的真正原因)
总结
re.compile对性能的提升作用不大,但对于部分工程师可能觉得要尽可能的提升性能,因此工作上最好还是用上,不然可能被人挑刺。
题外
这是作者在网上看到的大多数文章的说法,但存在即合理,或许有什么功能或适用的场景本人没有发现,请留言,共同学习。