可能重复:
Should wildcard import be avoided?
除了没有导入所有功能之外,from foo import spam比from foo import *提供了哪些其他优势?
它能节省内存吗?或者它只是语法糖,但实际上是进口所有东西?我在哪里能找到更多关于它的信息?
如果它确实节省了内存,它是如何工作的?
发布于 2012-02-02 11:29:43
使用未显式导入的名称污染全局命名空间是个坏主意。这样就不可能知道您以后在代码中使用的名称实际上是从哪里导入的,而不可能读取导入的每个模块的源代码,并且可能会有两个使用相同名称的模块冒风险,这可能会破坏一些东西。
发布于 2012-02-02 11:26:30
导入*将导入foo中的所有内容,其中导入垃圾邮件将只导入所需的属性。
这就像代码中有未使用的变量/方法一样。如果您开始使用pylint之类的方法对代码进行评级,则使用未使用的变量和方法会降低评级。
发布于 2012-02-02 11:29:08
如果您需要foo的所有内容或大部分内容,那么from foo import *更好,但是如果您只需要spam,那么from foo import spam将为您完成这项工作。
https://stackoverflow.com/questions/9111492
复制相似问题