我正在编写一些Python代码,其中必须使用像这样的父子设计:
from typing import List
class Parent(object):
def add_children(self, child: List[Child]):
"""Do something here"""
class Child(object):
def set_parent(self, parent: Parent):
"""Do something here"""
但是Python引发一个NameError
并抱怨Child
类未定义。这是合乎逻辑的,因为它在Parent
类下。
在C ++中是否存在诸如“转发声明”之类的东西来处理此类问题,或者还有其他方法吗?我尝试使用Google进行搜索,但没有成功。
答案 0 :(得分:1)
答案 1 :(得分:1)
这是一个循环依赖问题。
运行代码并遇到Parent
类时,它会寻找Child
类定义,但之后定义,因此找不到它并抛出错误!
如果交换两个定义,则在运行代码并遇到Child
类时,它会寻找Parent
类定义,但此后定义,因此找不到它并抛出错误!
要解决此问题,您必须使用here中标识的名称中的字符串,问题将得到解决
def add_children(self, child: "List[Child]"):