【发布时间】:2022-01-21 16:02:13
【问题描述】:
我正在尝试创建一个名为Theme 的类,其__init__ 函数允许传入另一个可能是Theme 类型的对象。但是当我尝试键入提示该类型的对象时如果允许,Python 会抛出错误,因为 Theme 尚未定义。这是代码,当我取出类型提示时有效:
from typing import Union
class Theme:
def __init__(self, start: Union[dict, Theme, None] = None):
if start is None:
start = {}
elif isinstance(start, Theme):
start = start.dict
self.dict = start
我得到的错误是:
Traceback (most recent call last):
File "C:/Users/.../Test.py", line 4, in <module>
class Theme:
File "C:/Users/.../Test.py", line 6, in Theme
def __init__(self, start: Union[dict, Theme, None] = None):
NameError: name 'Theme' is not defined
我有什么办法可以做到这一点,还是不可能,我不应该打扰?
【问题讨论】:
标签: python python-typing typing