我是python新手,试图理解“import module”和“from module import*”之间的区别。我认为两者都是相同的,因为它们从模块中导入了所有函数,但没有看到。我的困惑源于下面的代码——
import abc
class Minnn(ABC):
@abstractmethod
def calculate(self, x):
pass # empty body, no c
当我运行时,我得到以下错误:“NameError:name'ABC'is not defined”。当我将第一个导入行替换为“from abc import*”时,它就工作了。为什么这会造成不同呢
导入模块会将单个符号添加到命名空间中,但您可以从中引用导出的对象:
当您
import *
时,您正在将从该模块导出的所有符号添加到当前命名空间中,因此您可以直接引用它们,而不必使用模块前缀:如果你是黑客在一个外壳或笔记本;不是什么大不了的。但是生产代码不应该这样做。你知道吗
相关问题 更多 >
编程相关推荐