我正在用django开发一个应用程序,我怀疑在全局级别导入库是否比在本地(每个函数)级别导入对内存或性能有任何影响。如果它是在每个函数或视图中导入的,那么单独需要的模块就会被导入,这样可以节省空间吗?还是说这样做有什么负面影响?
发布于 2013-12-03 08:36:34
您肯定已经注意到,几乎所有Python代码都在文件顶部执行导入操作。这是有原因的:导入的开销很小,而且您可能会在流程生命周期的某个时候导入代码,所以您最好还是把它排除在外。
在函数级别导入的唯一好理由是避免循环依赖。
编辑你的评论表明你还不了解网络应用程序是如何工作的,至少在中是这样的。他们不会为每个请求启动一个新的进程并从零开始导入代码。相反,服务器会根据需要实例化进程,每个进程都会处理多个请求,直到最终终止为止。因此,很可能在这段时间内,所有的进口最终都会被需要。
发布于 2017-12-09 08:38:37
导入语句开销
将它们放置在函数中以限制其可见性和/或减少初始启动时间通常是有用的。虽然Python的解释器被优化为不多次导入相同的模块,但在某些情况下,重复执行import语句会严重影响性能。
发布于 2013-12-03 08:41:17
当脚本运行时,它会将模块存储在内存中,我相信您理解这一点。
如果您是在本地范围上导入,则每次客户端调用该函数时都会导入该模块。但是如果该模块是在全球范围内导入的,那么就没有必要这样做了!
因此,在这种情况下:全局导入获胜。
https://stackoverflow.com/questions/20346189
复制相似问题