为什么必须'导入'Python标准库函数?

时间:2013-11-30 22:29:16

标签: python language-design python-import

我是Python编码的新手,我来自PHP背景。我很好奇为什么你必须在python脚本的顶部“导入”函数。在PHP中,您只需使用以下函数:

sleep(10);

以上会导致脚本睡眠10秒钟。但是,要在python中执行相同的操作,似乎我必须导入'time'功能:

import time
time.sleep(10)

我的问题是:为什么这有必要?如果这些额外的函数已经是python的一部分,为什么python必须专门加载它们?在PHP中,如果缺少模块,脚本将失败。我必须全局安装该模块,然后它可以正常使用。

python的方法有优势吗?

3 个答案:

答案 0 :(得分:3)

是的,好几个。这意味着默认情况下编译和运行的次数较少。您的程序加载速度会更快,因为它只知道它实际需要的Python部分。

它使全局命名空间保持干净,并允许将功能逻辑分组到模块中。不同的模块可以具有相同命名的函数而不会发生冲突(例如,文件和套接字类可能都具有打开和关闭功能)。

答案 1 :(得分:3)

那么,如果您想将库A和库B同时使用名为f的函数,该怎么办?在Python中,这非常简单:您导入这两个模块,然后使用它的模块限定正确的f名称,例如: A.f()

这带来了第一个优势:命名空间(作为名称冲突问题的解决方案)和无污染的全局范围。

第二个优点是更灵活的模块系统。

答案 2 :(得分:0)

但您不需要导入“print()”或“input()”等函数。 这些功能已经为您提供。其他人不一定需要 因此它们位于其他地方,这就是您导入包含其功能的模块的原因 默认不提供