当内存问题很严重时,当我在函数内部执行python导入时,是否会保存一些内存,以便在调用完成后,所有内容都将从内存中丢弃?或者这会使我的内存和CPU更加麻烦,特别是当我对特定功能进行大量调用时? (用户拨打电话,我事先并不知道她会做多少)。这种差异的记忆含义是什么?
答案 0 :(得分:2)
导入模块时,会缓存任何/所有模块对象/函数/等,以便再次导入同一模块是无操作。随后,当引用它们的本地名称超出范围时,不会释放这些对象/函数/ etc。这只影响模块中全局定义的函数和对象,并且很可能不会有很多这样的函数和对象,因此可能不需要担心。
要专门回答您的问题,除非导入位于从未执行的函数或分支内,否则在性能方面实际上没有区别。在这种罕见的情况下,将它放在分支或功能中的速度稍快/资源密集程度较低,但它不会给你带来太大的好处。