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

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日

悬赏问题

  • ¥20 Keil编译时报错"no source": Error: #5: cannot open source
  • ¥50 操作系统时间无法更新
  • ¥20 Windows11, usb转hdmi,外接显示器无反应
  • ¥20 怎么在JavaFx的TableView中动态地添加数据。
  • ¥15 MFC里的工具栏按钮图标使用外部图片
  • ¥15 如何在 llama.cpp 服务器中实现用户登录功能的优化方案?(语言-c++)
  • ¥15 有会用octave 的吗,急!代做!好偿!
  • ¥15 有一套同城小程序源码,Uniapp前端,php+html+mysql后端 ,能不能教我搭建起来可以运行,我不知道怎样操作
  • ¥15 mac调用java.io接口无法在根目录生成文件
  • ¥15 java微服务节点假死,网关路由时长延迟