Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数内部和外部的Python导入语句。什么对记忆更好?_Python_Python 2.7_Python Import - Fatal编程技术网

函数内部和外部的Python导入语句。什么对记忆更好?

函数内部和外部的Python导入语句。什么对记忆更好?,python,python-2.7,python-import,Python,Python 2.7,Python Import,当内存问题非常严重时,在函数中执行python导入时是否会节省一些内存,以便在调用完成时,所有内容都将从内存中丢弃?或者这会对我的内存和CPU造成更大的麻烦,尤其是当我对特定函数进行大量调用时?(用户打电话,我不知道她会打多少)。这种差异的内存含义是什么?导入模块时,任何/所有模块对象/函数/etc都会被缓存,因此再次导入同一模块是不可操作的。随后,当引用它们的本地名称超出范围时,这些对象/函数/etc不会被释放。这只会影响模块中全局定义的函数和对象,很可能不会有太多,因此可能不需要担心 为了明

当内存问题非常严重时,在函数中执行python导入时是否会节省一些内存,以便在调用完成时,所有内容都将从内存中丢弃?或者这会对我的内存和CPU造成更大的麻烦,尤其是当我对特定函数进行大量调用时?(用户打电话,我不知道她会打多少)。这种差异的内存含义是什么?

导入模块时,任何/所有模块对象/函数/etc都会被缓存,因此再次导入同一模块是不可操作的。随后,当引用它们的本地名称超出范围时,这些对象/函数/etc不会被释放。这只会影响模块中全局定义的函数和对象,很可能不会有太多,因此可能不需要担心


为了明确回答您的问题,除非导入位于从未执行过的函数或分支内,否则在性能方面实际上没有任何差异。在这种罕见的情况下,在分支或函数中使用它会稍微快一点/资源密集度较低,但不会给您带来太多好处。

我不认为这是重复。你提到的问题是从清晰的角度看问题,而不是从记忆问题的角度看问题。我想问的是什么对记忆更好?请阅读另一个问题的答案。它们包含有关性能相关问题的详细说明。请仔细阅读其他答案。为什么不对代码进行一些分析并找出答案呢?在RAM使用问题上,(从Bhargav链接中的注释链接而来)提到导入总是被缓存的,即使是在函数中执行的,所以当函数退出时,内存不会被释放。如果我阅读正确,我认为模块的垃圾收集方式与正则变量在函数末尾的垃圾收集方式不同。也许从
sys.modules
中删除条目可以实现您想要的功能,但我从未尝试过。