资讯专栏INFORMATION COLUMN

python 循环导入

EsgynChina / 2853人阅读

摘要:记录前段时间学习时遇到的循环导入问题何为循环导入栗子很简单现在有三个包中导入中导入中导入然后随便以一个文件为入口执行程序假如以作为程序入口大概就像下面这样现在执行就会报出导入错误类似下面这个详细介绍在核心编程中有介绍有时间可以看一下重点是

记录前段时间学习 Flask 时遇到的循环导入问题

何为循环导入?

栗子很简单, 现在有a.py, b.py, c.py 三个包, b.py 中导入 a.py, c.py 中导入 b.py , a.py 中导入c.py, 然后随便以一个文件为入口执行程序

假如以 a.py 作为程序入口, 大概就像下面这样

import c

def test():
    print("this a")

c.test()

现在执行a.py 就会报出导入错误(类似下面这个), 详细介绍在 core-python (python 核心编程) 中有介绍, 有时间可以看一下

ImportError: cannot import name XX
重点是, 怎么解决

(直接最实在的方法) 将产生循环的包, 放在函数里进行调用, 比如刚才的 a.py 可以改成这样

def test():
print("this a")

def run():
import c
c.test()

如果了解程序的执行顺序的话, 也可以使用调整 import 顺序的方法解决, 但是我尝试的结果是: 这并不能100% 的解决问题

(终极解决方案) 要不还是重构吧 (逃..)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/45528.html

相关文章

  • Python循环导入和依赖错误

    摘要:类之间的循环依赖代码大致是这样的这样,依赖,依赖,又会回到,这样肯定就是错误的了。因为在引用的时候,会回到查找引用的,但是这个时候的构建还没有完成,就会导入错误。也就是使用字符串表示模块,而不进行导入了。 最近使用Python + Django,是一个巨复杂的系统,才几天就40多张数据库的表了。因为在Django里面,表都使用类来实现的,所以就要一开始写很多的class,语法都没问题,...

    刘福 评论0 收藏0
  • 独家 | 6种让Python程序变慢的坏习惯

    摘要:假设我们需要在程序中计算一些数字的平方根。此外如果我们需要在程序中多次使用平方根函数,代码将会更整洁。然而在这个虚构的例子中,只有的年龄超过岁。然后检查这三个人的年龄是否满足第二个条件。 作者: Christopher Tao翻译:王可汗校对:王雨桐本文约1800字,建议阅读5分钟本文...

    xcc3641 评论0 收藏0
  • Python3学习】走进Python

    摘要:如为,小数点后两位是,存在四舍五入。在中,有一个小坑,就是并不是真正的四舍五入如图而可以这样的总结为在奇数的时候,是四舍五入,在偶数的时候是五舍六入函数执行后输出的提示返回的是数据类型是,所以有时需要进行类型转换,这样的函数。 Python语言的概述 Pyhthon 是 蟒蛇的意思。python语言的拥有者是 Python Software Foundation(PSF)RSF是一个非...

    fuchenxuan 评论0 收藏0
  • python解决mysql视图导入导出依赖问题

    摘要:是可视化工具中最棒的,但是,在处理视图的导入导出方面,它是按照视图名称的字母顺序来处理的,若视图存在依赖,在导入过程中就会报错。 navicat是mysql可视化工具中最棒的,但是,在处理视图的导入导出方面,它是按照视图名称的字母顺序来处理的,若视图存在依赖,在导入过程中就会报错。这个问题一直困绕我,一度因为我使用docker来部署mysql而绕过了这个问题。最近不得不直面这个问题,因...

    Brenner 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<