Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:解析依赖项';循环';_Python_Architecture_Dependencies_Python Import - Fatal编程技术网

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
    resource_node
    ——tile的类型,后者继承自前者。取决于:
    • 数据
      -他们通过
      数据
      访问
      平面
      的实例,以发现周围的瓷砖

  • 数据
    -包含许多不同模块需要访问的几个静态变量。取决于:
    • 平面
      用于初始化
      pln
      变量
这当然是口译员无法解决的,在这种情况下,我得到:

ImportError:无法导入名称资源节点


在维护最佳实践的同时,如何调整程序的体系结构以避免此问题?

通常,如果使用正确,您可以使用前向声明来解决循环依赖关系。如果显示代码,将更容易提供帮助。在设计方面,似乎
blank\u tile
不需要初始化
plane
实例,因此不需要导入它。它导入数据类并通过它访问plane的实例。它只在单个函数中使用它:
plane
这里是伪单例吗?在我看来,平铺要么需要直接引用它们所属的平面(因此它们不必通过数据间接引用),要么涉及多个平铺的任何逻辑都需要在
平面
级别专门处理。@AshtonWar我不确定
数据
是否有意义。如果您有逻辑上附加到类或模块的常量(需要导入的事实强烈表明了这一点),只需在其他类或模块上设置这些值属性即可。另外,如果您要通过
数据
平铺
到达
平面
实例,直接从
平铺
引用到其包含的
平面
(这是一个伪单例)实际上比直接从
平铺
引用更不直接地获取信息。循环导入通常是封装模型有缺陷的标志,所以请修复它。