python中模块的导入方法

如果用 Python 写一个比较大的应用,有两个文件都需要导入同一个 module

比如:一个文件 core.py 需要:

import numpy as np

另一个文件 main.py 需要导入上面的文件,并且也需要用到 numpy,

import numpy as no
import core

import core.np as np
import core

这两种方式哪个更好,假如需要非常大的运算量,会有速度上的影响吗?

阅读 5k
5 个回答
import numpy as np
import numpy as np

在一个文件中或者不同文件中 import 一个模块多次,python 只会在第一次的时候执行这个模块的相关代码。所以性能上没有差别。

比如:

# a.py
print("I'm module a, you are importing me...")
# b.py
import a
import a

你可以看到只会输出一次

使用第一种方式比较好,因为第二种方式会是两个模块产生耦合,这样不合理。

python在import模块的时候有加载路径的,效率上不会有很大的差别。

这只是导入模块而已,就算运算量大也不会怎么影响性能吧

至于哪种好,我觉得第一种写法好一点,更直接一些,这样找的时候也很容易;第一种这样会造成依赖关系复杂,两层倒还好,要是到后面四层五层看了都费劲

第一种吧,性能上其实区别不大,但是第二种显的重复而且晦涩,完全可以import core然后使用core.np,python
之禅里面强调显式优于隐式。有一点需要注意,如果你的代码在core里对numpy模块的任何属性做了重绑定,则就不要再用原生的numpy而是用corn.np

不会导致性能问题。Python对于已import一遍的module不会再导第二遍。
如果说哪个更好,我觉得在这个问题上你需要充分考虑你的代码可读性。numpy对于你的项目来说本身是一个公共的模块,从这一点出发,如果你在main.py中从core.py中去import这个这个模块,可能对于可读性会造成一定的影响,所以我觉得第一种比较好

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题