python - Python 循环导入让我发疯
问题描述
来自 helpers.py:
import ...
from datasets import my_datasets
class Printable():
def __str__(self):
return 'foobar'
def get_some_dataset(ds_id):
return my_datasets.get(ds_id, None)
来自 datasets.py:
import ...
from helpers import Printable
class Dataset(Printable):
def __init__(self, param):
self.baz = param
my_datasets = {
'id1': Dataset(foo),
'id2': Dataset(bar)
}
而现在 Python 尖叫着
ImportError:无法从“帮助者”导入名称“可打印”
如果我完全删除 Printable 依赖项,一切正常。
如果我稍微更改 datasets.py 中的导入:
import helpers as ma_helpers
class Dataset(ma_helpers.Printable):
...
然后错误信息变为:
AttributeError:模块 'helpers' 没有属性 'Printable'
如何使用Printable
来自 datasets.py 的 helpers.py,同时使用my_datasets
来自 helpers.py 的 datasets.py?
解决方案
假设您对这两个模块都有编辑权限,并且 helpers.py 包含自包含的辅助函数,您可能希望将与 dataset.py 相关的辅助代码移动到 dataset.py - 这可能会稍微减少模块化,但它会解决循环的最快方法。
推荐阅读
- macos - Specflow 3.1 + .NET core Visual Studio mac 不显示功能文件也不理解小黄瓜
- python - 通过 apiv4 python 将值插入谷歌表格
- reactjs - 如何使用reactjs获取json文件中的最后一行
- python - 循环遍历具有自定义类的多个值的字典?
- amazon-web-services - AWS Elasticbeanstalk CLI 忽略实例类型选项
- python - 在 django 中找不到模板 url
- javascript - 使用简单的 JavaScript 函数隐藏 div 元素的问题
- python - 列出当前登录用户的对象
- docker - 在 docker-selenium 中测试可以在本地运行但不能在 Jenkins 上下载文件
- c++ - 使用模板类构建基于 CMake 的项目的正确方法