假设我想要
import module.function
它实际上是将整个 module
导入到内存中,而不仅仅是 function
吗?
我想问这个问题,因为我认为只从模块中导入我需要的函数可以减少内存消耗。
编辑
澄清我的问题并在以下两个上下文中提出问题:
1. import module.function1
其中 module
是一个单独的 module.py
文件,其中包含 function1
和其他函数定义和类定义等。整个 module
是否被加载到内存中,还是只有 function1
的定义部分?
2. import package.function1
其中 package
是一个类似于 numpy
的包,其中包含文件层次结构,就像 Mike Tung 在下面描述的那样。整个包是否被加载到内存中,还是只有包含 function1
定义的模块文件,或者只有定义 function1
的那个模块文件的一部分?
from numpy import array
时,是整个numpy
模块被导入还是只有一个子模块? - graffanernumpy
和scipy
等包中的函数时减少内存占用。 - graffanerarray
不是子模块。当您实际导入子模块时,例如from numpy import random
,它会加载所有import numpy
加载的内容,并且还会加载random
子模块。(NumPy默认加载大多数子模块,包括random
,因此这实际上会加载与import numpy
加载的完全相同的内容。) - user2357112