Python:解析依赖项';循环';
我有四个模块导致问题Python:解析依赖项';循环';,python,architecture,dependencies,python-import,Python,Architecture,Dependencies,Python Import,我有四个模块导致问题 平面-一个二维瓷砖阵列和一些额外的Varibale。取决于: blank_tile-初始化过程中平面充满这些 resource\u node-如果磁贴类型为resource\u node,则方法打印依赖于磁贴“等级”的拉丁字符,而不是打印与其值对应的1到9之间的整数 blank_tile和resource_node——tile的类型,后者继承自前者。取决于: 数据-他们通过数据访问平面的实例,以发现周围的瓷砖 数据-包含许多不同模块需要访问的几个静态变
-一个二维瓷砖阵列和一些额外的Varibale。取决于:平面
-初始化过程中blank_tile
充满这些平面
-如果磁贴类型为resource\u node
,则resource\u node
方法打印依赖于磁贴“等级”的拉丁字符,而不是打印与其值对应的1到9之间的整数
和blank_tile
——tile的类型,后者继承自前者。取决于:resource_node
-他们通过数据
访问数据
的实例,以发现周围的瓷砖平面
-包含许多不同模块需要访问的几个静态变量。取决于:数据
用于初始化平面
变量pln
ImportError:无法导入名称资源节点
在维护最佳实践的同时,如何调整程序的体系结构以避免此问题?通常,如果使用正确,您可以使用前向声明来解决循环依赖关系。如果显示代码,将更容易提供帮助。在设计方面,似乎
blank\u tile
不需要初始化plane
实例,因此不需要导入它。它导入数据类并通过它访问plane的实例。它只在单个函数中使用它:plane
这里是伪单例吗?在我看来,平铺要么需要直接引用它们所属的平面(因此它们不必通过数据间接引用),要么涉及多个平铺的任何逻辑都需要在平面
级别专门处理。@AshtonWar我不确定数据
是否有意义。如果您有逻辑上附加到类或模块的常量(需要导入的事实强烈表明了这一点),只需在其他类或模块上设置这些值属性即可。另外,如果您要通过数据从平铺到达平面实例,直接从平铺引用到其包含的平面(这是一个伪单例)实际上比直接从平铺引用更不直接地获取信息。循环导入通常是封装模型有缺陷的标志,所以请修复它。