我有一个函数遍历一个文本文件,通过使用正则表达式来提取某些信息来查找信息。但是,程序会覆盖多个文件,因此会多次调用此函数。Python:在哪里编译RE?
目前,我有正则表达式编译作为函数的第一步。但是我开始想知道,从编程的角度来看,这是否是好的设计,因为函数被调用了好几次。
解释器是否足够聪明,看到它们不会在运行之间改变并缓存它们?或者,我考虑将它们编译为全局变量,以便它始终可用,只能编译一次,但将正则表达式与将使用的地方分开,这会使其更难以阅读。我看到的另一个选项是创建函数作为闭包,并在创建时传入正则表达式值,但似乎不必要的复杂。
总之,什么是最有效的方法来编译的RE(或任何其他值计算一次)仍然可读和pythonic?
谢谢。
我相信这是一个过早优化的情况。只要做你觉得在你的情况下最易读的东西。如果您遇到性能问题,请运行分析器并查看问题所在。 –
@AirirRachum在这种特殊情况下,你可能是对的。但这不是我第一次也不是最后一次有这样的设计,所以它很高兴早日实现它,至少在不损害可读性的情况下。 – TimothyAWiseman