在工作中遇到这么一个问题,有三个 py 模块,A ,B,C,C 需要调用 A ,B 中的东西使用,但 A 中导入 B,B 中也导入了 A,就会造成循环导入,需要改成表级驱动写法,先看循环导入具体样例

这里只是举个例子,什么是循环导入
现在来改成表级驱动,在此之前先看一种正常写法
左到右,ABC,需要根据 ll 的值判断是否在字典 fun 中,在的话获得对应函数,进行调用:

这种写法正常就可以了,如遇到了循环导入就需要表级驱动:

意思就是把字典的键对应的值为函数名,函数名为字符串格式,这样就可以避免在 B 中导入 A 了,A 中的函数必须加 @classmethod,C 从就可以通过 getattr(类,函数名) 进行调用。
一般有函数映射的场景使用。
解决Python循环导入问题:表级驱动写法解析
本文探讨了Python中常见的循环导入问题,并提供了一种解决方案——表级驱动写法。通过将函数名作为字符串存储在字典中,避免了直接导入导致的循环引用。这种方法适用于需要函数映射的场景,可以有效优化代码结构,提高模块的独立性。
2075

被折叠的 条评论
为什么被折叠?



