3
作为一个新手,我开始喜欢几乎默认情况下导入模块,因为我开始编写某些东西时,只是因为我调用了其中的某些函数(模块如random,time,os和sys)。但是,这是否会影响性能?如果我只想在模块中使用特定的功能,我是否更明确地询问它,或者我应该不在意?导入模块 - 多少是多少?
作为一个新手,我开始喜欢几乎默认情况下导入模块,因为我开始编写某些东西时,只是因为我调用了其中的某些函数(模块如random,time,os和sys)。但是,这是否会影响性能?如果我只想在模块中使用特定的功能,我是否更明确地询问它,或者我应该不在意?导入模块 - 多少是多少?
当你做from module import name
时,Python仍然需要运行module
,所以在性能方面没有区别。
一般来说,如果你只使用从模块的一件事,在使用from x import y
是好的,但在其他方面,使用import x
然后x.y
导致冲突的名字的机会较低。
原因是Python不专门处理函数和类。从模块导入时,您所做的只是从该模块获取对象并使用它们。这很有用,因为它使得模块(以及类和函数)非常灵活,但它确实意味着Python必须在模块可以从其导入之前运行整个脚本(当然,模块编写者可以通过使用if name == "main":
成语来插入不应在导入时运行的代码)。
如果我使用“从模块导入*”怎么办? – Kimomaru 2013-02-28 20:39:39
@Kimomaru这通常是一个坏主意,除非模块是专门为它设计的。在大多数情况下,它只会污染你的命名空间,并且使代码更难处理。当然,它仍然会像其他方法一样加载整个模块。 – 2013-02-28 20:40:17
有趣。所以,最好尽可能具体,因为它可以使事情保持有组织。我可以想象导入所有内容,然后意外地创建一个与导入的内容相同的函数 - 会导致问题。 – Kimomaru 2013-02-28 20:43:19