我正在开发一个项目,其中我需要在不同的项目文件(.py文件)中使用第三方模块。情况就是这样。
我有一个文件“abc.py”,它导入第三方模块“common.py”。还有一些其他文件也导入“common.py”。所有这些文件也导入主项目文件“main.py”。
在项目中多次导入同一模块似乎是多余的,因为“main.py”也导入了所有项目文件。
我也不确定项目的大小如何受到多个import语句的影响。
有人可以帮助我让事情变得更简单。
答案 0 :(得分:21)
仅导入加载模块一次。之后的任何导入只是将其添加到当前名称空间。
只需将您需要的文件中的内容导入即可,让Python可以轻松搞清楚加载模块。
答案 1 :(得分:3)
是的,你是对的,这种行为确实存在于Python中。也就是说,如果用户代码尝试以不同方式导入同一模块,例如 - import a
和import A.a
(其中a.py
文件位于A
包中,而第一个import
{1}}已完成来自 A
个包,而另一个import
来自来自外部。)
这在现实生活中很容易发生,特别是对于多级打包的 Python 项目。
我遇到过这种行为的副作用,即当针对以这种方式导入的模块中定义的类检查对象时,命令isinstance
不起作用。
我能想到的解决方案是重新定义__builtin__. __ import__
函数以更智能地执行其工作。