首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“`from foo import spam`”与“`from foo import *”相比的优势

“`from foo import spam`”与“`from foo import *”相比的优势
EN

Stack Overflow用户
提问于 2012-02-02 11:24:15
回答 4查看 180关注 0票数 0

可能重复:

Should wildcard import be avoided?

除了没有导入所有功能之外,from foo import spamfrom foo import *提供了哪些其他优势?

它能节省内存吗?或者它只是语法糖,但实际上是进口所有东西?我在哪里能找到更多关于它的信息?

如果它确实节省了内存,它是如何工作的?

EN

回答 4

Stack Overflow用户

发布于 2012-02-02 11:29:43

使用未显式导入的名称污染全局命名空间是个坏主意。这样就不可能知道您以后在代码中使用的名称实际上是从哪里导入的,而不可能读取导入的每个模块的源代码,并且可能会有两个使用相同名称的模块冒风险,这可能会破坏一些东西。

票数 3
EN

Stack Overflow用户

发布于 2012-02-02 11:26:30

导入*将导入foo中的所有内容,其中导入垃圾邮件将只导入所需的属性。

这就像代码中有未使用的变量/方法一样。如果您开始使用pylint之类的方法对代码进行评级,则使用未使用的变量和方法会降低评级。

票数 2
EN

Stack Overflow用户

发布于 2012-02-02 11:29:08

如果您需要foo的所有内容或大部分内容,那么from foo import *更好,但是如果您只需要spam,那么from foo import spam将为您完成这项工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9111492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档