首页 > python import 相互导入的执行先后顺序问题

python import 相互导入的执行先后顺序问题

app.py:

from flask import Flask
# 如果在这里添加 import model 就会报错

app = Flask(__name__)

# ...
# model.py 需要导入使用
# 然后执行一些数据操作
# ...

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

Flask 项目,model.py 里需要导入主程序 app.py 中的 app,即 app = Flask(__name__),然后再 app.py 里又需要到导入 model.py 定义的数据结构来使用,这个时候就会报错,有什么解决方法吗?


也可以把app单独拿出来定义,然后其他包用的时候导入

from flask import Flask
app = Flask(__name__)

原则上不要循环引用,循环应用的可能会导致一个模块只加载了一半,最好是把相关的逻辑独立出去
或者可以考虑类似依赖注入的方式

比如

# b.py
x = None
...

# a.py
import b
b.x = ...
【热门文章】
【热门文章】