Python中是否可导入子模块内列出的所有模块实现批量加载?
问题解答
可以实现,操作方式如下:
- 新建一个独立的模块文件,比如命名为
common_imports.py,将你所有的导入语句原封不动写入这个文件:
# common_imports.py import finplot as fplt import numpy as np import pandas as pd import indicators from indicators import bf_numpy import mxnet import mxnet as mx from mxnet.gluon import nn, rnn from mxnet import np as np_ import time from blocks_utils_v2 import *
- 在你需要使用这些依赖的代码文件中,只需要写一行导入语句即可加载全部依赖:
from common_imports import *
注意事项
这种写法虽然能减少重复的导入代码,但不推荐在正式项目中使用,存在几个明显的问题:
- 会直接污染当前文件的命名空间,你无法快速区分某个变量/方法来自哪个依赖模块,一旦出现同名函数/变量的命名冲突,排查成本很高
- 大部分IDE的代码补全、静态语法检查工具无法正确识别跨模块
import *导入的对象,会出现误报未定义错误、代码补全失效的问题,影响开发效率 - 公共导入模块和所有引用它的业务文件强耦合,后续调整依赖时很容易出现意料之外的报错
如果只是写小型演示脚本、快速验证逻辑的临时代码可以这么用,正式开发还是建议每个文件按需显式导入依赖。
内容的提问来源于stack exchange,提问作者Anonymous
相关产品推荐
相关产品推荐

