问题描述
我正在尝试为我的元模型的实现部分创建一个可迭代的 textxClass
实例,但由于该类是动态创建的,我很不走运。是否还有一些巧妙的方法来输入我的模型的各个元素,还是我必须基本上使用 Iterable[Any]
?
解决方法
您可以简单地动态创建类,并通过将其设置为引号来 forward reference。链接说:
当类型提示包含尚未定义的名称时,该定义可能会表示为字符串文字,以便稍后解析。
一个最小的例子:
def expect_class_instance(instance: "MyClass"):
pass
def factory():
class SomeClass:
pass
return SomeClass
MyClass = factory()