自下而上通信Python



我有两个班,AB

A在其体中有一个B实例和一个int类型的counter实例。让我们假设B,由于某种原因,想要增加counter在其父A中的值。

所以类应该是这样的:

from bTest import B

class A:
counter: int
b: B
def __init__(self, b: B):
self.counter = 0
self.b = b

在另一个文件B:

from aTest import A
class B:
a: A
def __init__(self):
self.a = A()
def increaseA(self):
self.a.counter += 1
def setA(self, na: A):
self.a = na
self.increaseA()

这是主要的:

from aTest import A
from bTest import B
b = B()
a = A(b)
b.setA(a)
print(str(a.counter))

现在,当我运行它时,输出如下:

ImportError: cannot import name 'A' from partially initialized module 'aTest' (most likely due to a circular import)

让我们假设我想在BA之间创建一个通信,所以我对更好的设计或更改责任不感兴趣。

我很困在本通知进口,我不知道如果它是可以解决的。

@MikeScotty的建议是:

from typing import TYPE_CHECKING
if TYPE_CHECKING:
from bTest import B

In A file.

相关内容

  • 没有找到相关文章

最新更新