You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何在类构造函数中引用自身类的实例?

如何在类的构造函数中使用自身类的实例作为参数类型?

你在定义Node类的构造函数时,想用自身类作为参数的类型注解,结果遇到了Unresolved reference 'Node'错误,代码如下:

class Node:
  # 出现“Unresolved reference 'Node'”错误
  def __init__(self, val: int, left: Node, right: Node):
           self.val = val
           self.left = left
           self.right = right

解决办法

在你的脚本或者Python文件的第一行,添加这条导入语句:

from __future__ import annotations

补充说明

这个方法的原理是:在Python 3.7及以后版本中,__future__.annotations会让所有类型注解以字符串的形式被保存,而不是在代码定义阶段就去解析求值。这样在类内部引用自身类作为类型注解时,就不会因为类还没完成定义而触发引用错误。

另外还有一种替代方案——直接用字符串来写类型注解,比如:

class Node:
  def __init__(self, val: int, left: 'Node', right: 'Node'):
           self.val = val
           self.left = left
           self.right = right

但相比之下,导入annotations的方式更简洁,也更便于后续维护,尤其当类的结构比较复杂时优势更明显。

内容的提问来源于stack exchange,提问作者WestCoastProjects

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 08:08:31