例如,我需要在类中进行递归定义
class Formula:
root: str
first: Optional[Formula]
second: Optional[Formula]
def __init__(self, root: str, first: Optional[Formula] = None,
second: Optional[Formula] = None) -> None:
我收到以下错误:“未解决的参考公式”
任何建议将不胜感激。
答案 0 :(得分:1)
使用字符串代替值本身。
class Formula:
root: str
first: 'Optional[Formula]'
second: 'Optional[Formula]'
或(在Python 3.7或更高版本中)导入annotations
未来。
from __future__ import annotations
class Formula:
root: str
first: Optional[Formula]
second: Optional[Formula]
有关详细信息,请参见PEP-563。今天,类型提示已作为表达式求值。将来,从Python 4开始,它们将简单地以未评估的形式存储为类的__annotations__
属性中的字符串。