python多个导入的常见模块

时间:2011-01-14 08:37:15

标签: python

我正在开发一个项目,其中我需要在不同的项目文件(.py文件)中使用第三方模块。情况就是这样。

我有一个文件“abc.py”,它导入第三方模块“common.py”。还有一些其他文件也导入“common.py”。所有这些文件也导入主项目文件“main.py”。

在项目中多次导入同一模块似乎是多余的,因为“main.py”也导入了所有项目文件。

我也不确定项目的大小如何受到多个import语句的影响。

有人可以帮助我让事情变得更简单。

2 个答案:

答案 0 :(得分:21)

仅导入加载模块一次。之后的任何导入只是将其添加到当前名称空间。

只需将您需要的文件中的内容导入即可,让Python可以轻松搞清楚加载模块。

答案 1 :(得分:3)

是的,你是对的,这种行为确实存在于Python中。也就是说,如果用户代码尝试以不同方式导入同一模块,例如 - import aimport A.a(其中a.py文件位于A包中,而第一个import {1}}已完成来自 A个包,而另一个import来自来自外部。)

这在现实生活中很容易发生,特别是对于多级打包的 Python 项目。

我遇到过这种行为的副作用,即当针对以这种方式导入的模块中定义的类检查对象时,命令isinstance不起作用。

我能想到的解决方案是重新定义__builtin__. __ import__函数以更智能地执行其工作。