繁体   English   中英

class [python] 的递归定义

[英]recursive definiton of class [python]

例如,我需要在 class 中进行递归定义

class Formula:
    root: str
    first: Optional[Formula]
    second: Optional[Formula]
    def __init__(self, root: str, first: Optional[Formula] = None,
             second: Optional[Formula] = None) -> None:

我收到以下错误:“未解决的参考公式”

任何建议,将不胜感激。

使用字符串而不是值本身。

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 开始,它们将被简单地存储为 class 的__annotations__属性中的字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM