gpt4 book ai didi

Python 循环导入

转载 作者:太空宇宙 更新时间:2023-11-03 18:52:14 24 4
gpt4 key购买 nike

# ----- object1.py -----
from object2 import object2

class object1:
brother = object2()

 

# ----- object2.py -----
from object1 import object1

class object2:
sister = object1()

这应该是可行的。它不是。处理这个问题的适当方法是什么?

最佳答案

'from object2 import object2'是一个可执行语句,在这一行object2模块被加载到sys.modules中。并且,由于在 object2 模块中尝试了相同的操作,并且由于 object2 类尚未定义,因此它不会工作。

 //-->object2.py
from object1 import object1
class object2:
pass

//-->object1.py
from object2 import object2
class object1:
pass

所以,即使上面的代码也不起作用。

现在,如果您将代码修改为

 //-->object2.py
import object1
class object2:
brother = object1.object1()

//-->object1.py
import object2
class object1:
sister = object2.object2()

如果我们运行object2.py,你就完成了执行顺序

  import object1 -->object2.py
import object2 -->object1.py
class object1:
sister = object2.object2() //->it will give error here, as object2 module doesn't have object2 defined yet

关于Python 循环导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18066601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com