python之循环导入
举例
在python中,模块的导入遵循:同一模块,只会导入一次
比如,目录fisher中,有文件app.py, book.py
app.py
app = Flask()
from book import bookif main == '__main__':app.run()
book.py
from app import app
@app.route('/list')
def book_list():return ''
当运行脚本app.py时,book模块会被第一次执行。当在book.py中,遇到from app import app后, app.py脚本会重新执行,但是book.py模块,不会第二次执行。(from book import book,这个导入语句,不会多次导入)
简述
# 第一次导入:加载并执行模块
import my_module# 第二次导入:直接使用已加载的模块
import my_module # 不会重新执行
扩展
如果a模块下,有函数c,d,e
使用 from a import c, from a import d
模块a会多次执行嘛?
答案
不会
Python的导入机制
第一次导入:查找、加载、执行整个模块,并缓存到 sys.modules
后续导入:直接使用 sys.modules 中的缓存
