我想知道为什么有人只想从模块中导入特定的类或函数。换一种说法: 为什么要使用以下内容:
from abc.xyz import fgh
from abc.uvw import jkl
from abc.klo import mno
如果我也可以使用:
import abc
我认为如果导入abc模块,我应该可以访问其中的所有内容,否则我错了吗?
欢呼
答案 0 :(得分:0)
回想一下,这些模块已经被编写为执行特定任务的代码文件。每当我导入模块时,编译器/解释器都会从该文件中获取代码,并以某种方式将代码附加到我的代码中(可执行)。现在让我们说,abc模块的大小为15 Kb,我只想从中使用函数xyz,然后导入整个15kb只是我的编译器/解释器的开销。因此,一个好的做法是仅导入特定的函数/类,以便在编译或解释时只需完成最少的工作。
答案 1 :(得分:0)
考虑一个类似于名称空间的模块,因此,如果导入abc,则可以使用abc并用abc.something引用abc下的任何内容,但是如果您仅从该名称空间中导入特定内容,则可以肯定只能在您的代码中访问该特定名称。