我正在编写一些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
类下。你知道吗
这是一个循环依赖问题。你知道吗
当代码运行并且遇到
Parent
类时,它会查找Child
类定义,但它是在之后定义的,因此找不到它并抛出错误!你知道吗如果交换这两个定义,当代码运行并且遇到
Child
类时,它会查找Parent
类定义,但它是在之后定义的,因此它找不到它并抛出错误!你知道吗要解决这个问题,您必须在here中标识的名称中使用一个字符串,问题将得到解决
可以使用字符串指定名称:
进一步的解释,请看this answer。你知道吗
相关问题 更多 >
编程相关推荐