Python 导入模块
Python Import Modules
我想知道为什么有人只想从模块中导入特定的 类 或函数。换一种说法:
我为什么要使用以下内容:
from abc.xyz import fgh
from abc.uvw import jkl
from abc.klo import mno
如果我也可以使用:
import abc
我认为如果导入 abc 模块我应该可以访问其中的所有内容,或者我错了吗?
干杯
回想一下,这些模块是已经编写好的用于执行特定任务的代码文件。每当我导入一个模块时,compilers/interpreters 都会从该文件中获取代码,并以某种方式将代码附加到我的代码(可执行文件)中。现在假设,abc 模块有 15 Kb,我只想使用它的函数 xyz,那么导入整个 15kb 只是我 compiler/interpreter 的开销。这就是为什么,一个好的做法是只导入特定的 functions/classes,这样在编译或解释时需要做的工作最少。
将模块想象成命名空间,因此如果您导入 abc,您将能够使用 abc 并使用 abc.something 引用 abc 下的任何内容,但如果您仅从该命名空间导入特定内容,确保您只能在代码中访问该特定名称。
我想知道为什么有人只想从模块中导入特定的 类 或函数。换一种说法: 我为什么要使用以下内容:
from abc.xyz import fgh
from abc.uvw import jkl
from abc.klo import mno
如果我也可以使用:
import abc
我认为如果导入 abc 模块我应该可以访问其中的所有内容,或者我错了吗?
干杯
回想一下,这些模块是已经编写好的用于执行特定任务的代码文件。每当我导入一个模块时,compilers/interpreters 都会从该文件中获取代码,并以某种方式将代码附加到我的代码(可执行文件)中。现在假设,abc 模块有 15 Kb,我只想使用它的函数 xyz,那么导入整个 15kb 只是我 compiler/interpreter 的开销。这就是为什么,一个好的做法是只导入特定的 functions/classes,这样在编译或解释时需要做的工作最少。
将模块想象成命名空间,因此如果您导入 abc,您将能够使用 abc 并使用 abc.something 引用 abc 下的任何内容,但如果您仅从该命名空间导入特定内容,确保您只能在代码中访问该特定名称。