在工作中遇到这么一个问题,有三个 py 模块,A ,B,C,C 需要调用 A ,B 中的东西使用,但 A 中导入 B,B 中也导入了 A,就会造成循环导入,需要改成表级驱动写法,先看循环导入具体样例
这里只是举个例子,什么是循环导入
现在来改成表级驱动,在此之前先看一种正常写法
左到右,ABC,需要根据 ll 的值判断是否在字典 fun 中,在的话获得对应函数,进行调用:
这种写法正常就可以了,如遇到了循环导入就需要表级驱动:
意思就是把字典的键对应的值为函数名,函数名为字符串格式,这样就可以避免在 B 中导入 A 了,A 中的函数必须加 @classmethod,C 从就可以通过 getattr(类,函数名) 进行调用。
一般有函数映射的场景使用。