在这种情况下,有两个相关的大型python类,因此我将它们放在不同的文件中。假设课程是眼镜蛇和老鼠。
现在需要从眼镜蛇的方法调用Rat的方法,反之亦然。 为此,我需要在Rat.py和Rat.py中导入眼镜蛇
这将创建一个导入循环并给出一个错误。不能在眼镜蛇内部导入眼镜蛇。
如何解决这个问题??
眼镜蛇.py:
import Rat
class Cobra():
def check_prey(self, rat ):
# Some logic
rat.foo()
大鼠肺动脉压:
import Cobra
class Rat():
def check_predator(self, snake ):
# some_logic ..
snake.foo()
如果在Rat的类定义中不使用Cobra,或者相反(即只在方法内部使用),那么实际上可以将import语句移到文件的底部,此时类定义已经存在。
或者也可以限制导入的范围
如果不直接使用Rat和Cobra类名,那么根本不需要import语句:只要Rat或snake实例中存在属性和函数,python就不关心它们来自哪个类。
一般来说,没有万无一失的方法可以避免导入循环。你能做的最好的事情就是重构你的代码并做一些我上面提到的事情。
相关问题 更多 >
编程相关推荐