python-3.x - 在 Python 3.7 中导入序列
问题描述
我想用这种结构组织一个包:
/program.py
/__init__.py
/data/
/data/__init__.py
/data/method_1.py
/data/method_2.py
/data/classes.py
程序导入method_1和method_2,method_1和method_2导入类。但我收到一个错误:ModuleNotFoundError:没有名为“method_1”的模块。我应该如何组织这个包以及我应该在init .py 文件中写什么?
program.py:
import __init__
from data import classes
from data import method_1
from data import method_2
...
__init__.py:
__all__ = ['data']
from data import *
/data/__init__.py:
__all__ = ['classes', 'method_1', 'method_2']
from method_1 import *
from method_2 import *
from classes import *
/data/method_1.py: (and also /data/method_2.py)
import classes
...
解决方案
method_1
, method_2
, 和classes
都在data
包中,因此:
# data/__init__.py
from .method_1 import *
from .method_2 import *
from .classes import *
...
# data/method_1.py
from . import classes
推荐阅读
- entity-framework - 当对象 ID 在保存到数据库之前未设置但您在创建方法中检查了不变量时,如何进行单元测试?
- tensorflow - Tensorflow Estimator Hook 访问传递给 model_fn 的特征标签和在 model_fn 期间构建的图形操作
- javascript - 仅在 Vanilla JavaScript 中定位此父母的孩子
- c++ - 为什么我的电影类在创建电影实例时遇到问题?
- c# - 如何在我的 DbContext 中获取 IConfiguration 实例?
- django - DNS (Google Domains) 重定向到端口而不是根
- excel - 案例选择语句不触发宏
- gravityforms - 重力形式 - 如何将来自多个输入的值添加到一个文本区域
- colors - 需要找出导致插入符号 (^) 后面的数字产生颜色的原因
- lua - setmetatable 到底是什么,出于安全原因,我该如何避免它?