相关问题:
- python - 在文件顶部导入与在函数内部导入 https://stackoverflow.com/questions/46813425/python-import-at-top-of-file-vs-inside-a-function
If an import
语句在函数内部,函数退出后它占用的内存会被回收吗?如果是,回收的时间是否是确定性的(或者甚至是-ish)?
def func():
import os
...
# function about to exit; will memory occupied by `os` be freed?
如果有人了解以下行为micropython https://github.com/micropython/micropython关于这个话题,加分。
第一次导入执行模块中的代码。它创建模块对象的属性。每个后续导入仅引用第一次导入创建的模块对象。
Python 中的模块对象实际上是单例。为此,Python 实现必须在第一次导入后保留唯一的模块实例,无论模块绑定到什么名称。如果它无论如何都绑定到一个名称,因为还有以下形式的导入from some_module import some_name
.
所以不,内存没有被回收。
不知道 Micropython,但如果它极大地改变了这里的语义,我会感到惊讶。您可以简单地自己测试一下:
一些_模块.py:
value = 0
some_other_module.py:
def f():
import some_module
some_module.value += 1
print(some_module.value)
f()
f()
这应该打印数字 1 和 2。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)