作为一个新手,当我开始编写一些东西时,我几乎默认地喜欢导入模块,因为我经常调用它们中的某些函数(像随机、时间、操作系统和系统这样的模块)。但是,这会影响性能吗?如果我只想要模块中的特定功能,那么明确要求它会更好还是不关心?
问问题
3886 次
1 回答
7
当您这样做时from module import name
,Python 仍然必须运行module
,因此在性能方面没有区别。
一般来说,如果你只使用一个模块中的一个东西,那么使用from x import y
就很好,但否则,使用import x
然后x.y
会导致名称冲突的可能性较低。
这样做的原因是 Python 没有特别对待函数和类。当您从模块导入时,您所做的就是从该模块中获取对象并使用它们。这很有用,因为它使模块(以及类和函数)非常灵活,但这确实意味着 Python 必须运行模块的整个脚本才能从中导入(当然,模块编写者可以通过使用if name == "main":
成语插入不应在导入时运行的代码)。
于 2013-02-28T20:37:29.070 回答