Python中循环引用(import)失败的解决方法 .pdf

上传人:zh****71 文档编号:133538985 上传时间:2020-05-28 格式:PDF 页数:4 大小:21.21KB
返回 下载 相关 举报
Python中循环引用(import)失败的解决方法 .pdf_第1页
第1页 / 共4页
Python中循环引用(import)失败的解决方法 .pdf_第2页
第2页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Python中循环引用(import)失败的解决方法 .pdf》由会员分享,可在线阅读,更多相关《Python中循环引用(import)失败的解决方法 .pdf(4页珍藏版)》请在金锄头文库上搜索。

1、Python 中循环引用 import 失败的解决方法 本篇文章小编和读者们分享一下Python 中循环引用 import 失败的解决方法 对此不了解 或者是想要学习一下的小伙伴可以仔细阅读 下面随着小编一起来看一下吧 前言 本篇文章以开发智能家居项目hestia rpi 项目中循环引用 import module 失败的问题为例 给大家简单分析一下 错误如下 Traceback most recent call last File main py line 8 in lt modulegt from hestiarpi library server import server File ho

2、me pi server hestiarpi library server server py line 4 in lt modulegt from hestiarpi library brain import handler File home pi server hestiarpi library brain handler py line 5 in lt modulegt from hestiarpi library brain import monitor File home pi server hestiarpi library brain monitor py line 6 in

3、lt modulegt from hestiarpi library server import server ImportError cannot import name server 原理 这个时候就有一个问题 当前脚本Main 第一次执行 需要执行from A import 发现没有 A 就新建一个A 在内存中 然后填充A模块的信息 就会去执行A 此时 A 里面要from Main import D 那么因为Main 已被执行 就直接从内存的map 中取得 Main 的信息 不过 此时 Main 的信息还没有填充完 因为之前就是为了填充才转到A 的 这时从已有的空的 Main 中拿不到D

4、 就会报错 ImportError 解决方案 方案一合理划分项目代码层级 循环引用最大的本质问题是代码层级结构划分的不合理 所以最根本的 最合理的解决方案 就是重新划分好代码的层级结构 使其合理化 自然就规避了循环引用的麻烦 方案二只引用当前的包 不引用具体的模块 如果你的代码是这样 那么这种方式是会奏效的 修改前 a py from B import b def a pass some codes b py from A import a def b a a some codes 修改后 a py from B import b def a pass some codes b py import A def b A a a some codes 方案二将引用放到函数内部 如果你的代码是这样 那么这种方式是会奏效的 修改前 a py from B import b def a pass some codes b py from A import a def b a a some codes 修改后 a py from B import b def a pass some codes b py def b from A import a a a some codes 以上就是小编给大家分享的Python中循环引用 import 失败的解决方法 希望对小伙伴们 有所帮助

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号