当前位置: 首页 > news >正文

高校教学网站建设国家建设管理信息网站

高校教学网站建设,国家建设管理信息网站,外贸网站策划,全国装饰公司最新排行榜在 Python 中#xff0c;大部分人都应该都遇到过循环导入的问题。 循环导入是指两个文件各自尝试导入另一个文件#xff08;模块#xff09;#xff0c;当一个模块没有完全初始化时会导致失败。解决这种情况的最好方法是将代码分层组织#xff0c;这样导入的关系就会自然…在 Python 中大部分人都应该都遇到过循环导入的问题。 循环导入是指两个文件各自尝试导入另一个文件模块当一个模块没有完全初始化时会导致失败。解决这种情况的最好方法是将代码分层组织这样导入的关系就会自然地朝着一个方向流动。但是更加简单的方式只需更改使用的 import 语句的样式即可。 # one.py from two import func_twodef func_one():func_two()# two.py from one import func_onedef do_work():func_one()def func_two():print(Hello, world!)# main.py from two import do_work do_work()如果我们运行 main.py , 会得到如下的报错信息 Traceback (most recent call last):File /mnt/data/python/main.py, line 2, in modulefrom two import do_workFile /mnt/data/python/two.py, line 2, in modulefrom one import func_oneFile /mnt/data/python/one.py, line 2, in modulefrom two import func_two ImportError: cannot import name func_two from partially initialized module two (most likely due to a circular import) 当 Python 导入一个模块时它会逐行执行该文件。文件中的每个全局变量(包括函数和类)都成为正在构造的模块对象的一个属性。 在 two.py 中我们在第2行从 one.py 导入一个函数。此时已经有了one和two模块但是它们还没有属性因为还没有定义任何东西。模块two最终会包含 do_work 和 func_two函数但是还没有执行到这些 def 语句所以它们暂时不存在。 与函数调用一样当 import 语句运行时它开始执行导入的文件直到导入完成后才返回当前文件。 当导入one.py时它的第2行尝试从two模块导入func_two。正如我们刚才所说的two模块已经存在但是还没有定义func_two这就导致了错误。 解决这个问题的方法也很简单我们不需要从模块导入具体的函数名称而是可以导入整个模块然后使用导入的模块中的函数如下所示: # one.py import two # was: from two import func_twodef func_one():two.func_two() # was: func_two()# two.py import one # was: from one import func_onedef do_work():one.func_one() # was: func_one()def func_two():print(Hello, world!)# main.py from two import do_work do_work()这次就可以正常运行 main.py了。 这次能够正常运行是因为 two.py 在第2行导入one模块然后 one.py 在第2行导入two模块这样是可以正常导入的因为这两个模块都存在。就像上面提到的那样它们此刻是空的但是现在我们没有导入某个具体的函数名称。在完成所有导入之后one和two模块就都会包含了他们的内部的函数名称我们可以使用模块名来引用其中的函数了。 这里的关键点是 from two import func_two 语句在导入期间尝试查找 func_two(在它存在之前)。通过使用import two将函数名称查找延迟到函数体内可以让所有模块完全初始化避免循环导入的错误。 正如在开头提到的修复循环导入的最佳方法是对代码结构进行优化这样模块就不会相互依赖。但这样在代码比较复杂时的改动会非常大使用上面提到的方法可以暂时解决问题。
http://www.zqtcl.cn/news/581109/

相关文章:

  • 演示 又一个wordpress站点静态页面加wordpress
  • 企业做淘宝客网站有哪些有网站吗给一个
  • 深圳网站制作公司信息之梦与wordpress哪个好用
  • 免费搭建商城网站山西制作网站公司排名
  • 网站开发免费中建建设银行网站
  • 301重定向到新网站在线建站
  • 曰本做爰l网站沙朗做网站公司
  • 广州网站设计智能 乐云践新专家wordpress 头像设置
  • 电子商务学网站建设好吗佛山市手机网站建设企业
  • 为企业做网站电话开场白小说网站的里面的搜索是怎么做的
  • 深圳市设计网站公司自己做网站开网店
  • 智能建站cms管理系统修改wordpress时区
  • 站长怎么添加网站内容重庆网站推
  • 东莞网站建设属于什么专业网页设计代码书
  • 网站后台代码在哪修改wordpress添加搜索小工具
  • 爱站站长工具中国建设监理协会官方网站
  • 珠海微信网站开发东莞网站制作方案定制
  • 大学网站建设说明书记的网站域名
  • 网站如何开通支付功能第一ppt课件免费下载官网
  • 做1元夺宝网站挣钱吗美工网站设计收费
  • 华侨城网站开发wordpress页码颜色
  • 上海建站网络公司制作文字图片
  • 平台型网站制作网站建设张世勇
  • 网站建设云南网页游戏大厅都有哪些
  • 网站建设与管理报告书郑州建设银行网站
  • 做网站网页的人是不是思维公司网站建设包括
  • 网站建设都包括哪些网站后台如何上传文件
  • 网站便民服务平台怎么做迁安做网站中的cms开发
  • 做外贸比较好的网站怎么把网站做的好看
  • 有没有在淘宝找人做网站被骗过的台州市环保局网站开发区