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

Python类互相引用引发NameError的问题及解决方法

类互相引用引发NameError的解决方法

问题

代码中两个类互相引用类型注解,无论调整类的定义顺序,都会触发 NameError: name 'Class_Name' is not defined 错误,代码示例如下:

class FirstClass():
  second_class: SecondClass
  def __init__(self):
      """SOME CODE HERE"""

class SecondClass(firsClass: FirstClass):
  def __init__(self):
      self.first_class = firstClass

问题核心是:当一个类在定义时引用另一个尚未定义的类,Python解释器会抛出未定义错误,而双向引用的场景下无法通过调整顺序避免。

解决方案

在文件顶部导入如下语句:

from __future__ import annotations

导入该模块后,Python会延迟类型注解的解析,先读取并解析整个文件的所有类定义,因此即使被引用的类定义在后面,也能被正常识别,不会触发未定义错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:20:39