0
如果我想在兩個類中使用註釋,在不同的模塊中是交叉的?Circular imports and annotations
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和使用類作爲模塊AModule.A
的屬性我AttributeError: module 'BModule' has no attribute 'B'
在我的情況下,這是不舒服的。這些模塊放置在不同的環境(服務)中。並接收對象的「郵箱」(不是直接對象,但包含這些對象的API)。 因此,方法將從B發送一些信息給A或從A發送給B(取決於情況)。 – Broly
我不確定我完全理解你的意思。你能否在一個要點或某個地方提供一個更詳細的例子(不需要污染原始問題)?這聽起來像整個系統的架構需要查看以消除依賴關係。除非當然,否則很樂意放棄在此特定實例中註釋類型的要求。 – kfb
註解用於生成C++代碼(不僅用Python編寫的服務)和序列化。在C++中,我可以使用'forward declaration'來避免循環依賴。 但是,如果args註釋,我可以大膽調用特定的方法毫無疑問。 我想我可以使用字符串註釋,但它並不漂亮。 – Broly