繁体   English   中英

Python模块-运行时会发生什么?

[英]Python Modules - What happens during runtime?

我刚开始编写python模块,我很好奇在运行时模块会发生什么? 例如,是否在需要时加载和卸载模块? 我遇到的具体情况是这样的:

我建立了一个利用内存缓存的模块,该模块从导出的函数中调用,该函数查看缓存,具有一定的逻辑,然后根据缓存中的值返回布尔值。 在这种特定情况下,每次调用函数时都会更新缓存,该缓存是否会在多个调用之间持续存在? 还是在不使用模块时将其卸载,从而从内存中清除我的缓存并在再次访问该模块时重新加载?

更广泛地说,在python应用程序的整个运行过程中,我对模块的预期行为是什么?

导入模块时,将执行其代码,并将生成的模块放入sys.modules

之后,模块将被分配给具有模块名称的变量。 例如,如果您确实import os ,则模块将通过键os插入到sys.modules ,并分配给名为os的全局变量。

在正常操作中,模块永远不会卸载,因此您不必担心数据丢失或类似情况。 就是说,有类似importlib.reload类的功能在某些情况下可能导致模块丢失数据。

但是,只要您不弄乱内部结构,就可以安全地假定缓存中的数据在程序的整个运行期间都保持有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM