XY_0209 2021-07-10 09:18 采纳率: 100%
浏览 20
已采纳

python的re模块为何在第一次调用时,其中_cache就是非空的

通过debug发现调用re.compile时会先去_cache中找结果,但即使第一次调用,_cache也已存了几百个键值对了,但并没找到装这些键值对的过程。

  • 写回答

1条回答 默认 最新

  • blkq 2021-07-10 12:51
    关注

    re是全局的,其它模块也会使用它。
    要希望确认是哪些地方调用到,可以把下面的代码加到re.py,然后执行debug。

            print(".......................................................")
            import sys
            getframe_expr = 'sys._getframe({})'
            print(eval(getframe_expr.format(3)))
            print(".......................................................")
            print(len(_cache))
    

    加到_cache[type(pattern), pattern, flags] = p的前面

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 7月10日
  • 创建了问题 7月10日