是否保证python导入按顺序排列?依靠这个好主意?

Fen*_*ang 3 python import

如果我有以下Python代码:

import module1
import module2
Run Code Online (Sandbox Code Playgroud)
  • Python是否保证module1之前加载module2,并且它们不是,例如,并行加载?这适用于CPython,但我希望代码也可以移植到其他版本,包括允许多线程的代码.搜索Python规范并没有发现任何东西.
  • 依赖进口订单是个好主意,即使有保证吗?初始化代码module1必须在此之前运行module2.我没有想到替代方案,module1.init()那时module2.init()非常pythonic.

uni*_*rio 10

  1. 是的,保证进口订单.
  2. 不,这不是一个好主意.这很容易通过导入另一个文件导入之前打破这个module1是进口的module2.如果你想module1在之前运行module2,那么module1在顶部明确导入要好得多module2.