循环导入和注释

Circular imports and annotations

如果我想在两个 classes 中使用注释,在不同的模块中是交叉的吗?

from BModule import B

class A:
  def method(self, b: B):
     pass

~

from AModule import A

class B:
  def method(self, a: A):
     pass

我有一个ImportError: cannot import name 'B'?但是,如果我需要对此进行注释,该怎么办?

此外,如果我只是导入 AModule\BModule 并使用 class 作为模块 AModule.A 的属性,我得到 AttributeError: module 'BModule' has no attribute 'B'

是什么在强制依赖?在我看来,在这种情况下,任何采用 BA 方法都可以作为采用 AB 上的方法来实现,因此请使用以下方法之一class 是 "main" class 并使用那个 class 来操作另一个 class 的对象,是否有意义?