这里的基类实际上是一个抽象类,提供了基本的方法和类型提示,子类用相同的参数覆盖它们。
我尝试了下面的代码,想让字典中的值。mp
提示这些基本的方法,但它不工作。
from typing import Dict
class Base:
pass
class A(Base):
pass
class B(Base):
pass
mp: Dict[str, Base] = {
"A": A,
"B": B
}
Pycharm IDE警告说 预期类型为'Dict[str, Base]',得到'Dict[str, Union[A, B]]'。.
我不知道正确的方法是什么
正如上面的朋友@MaxNoe所提到的,我应该使用下面的代码。
from typing import Dict, Type
class Base:
pass
class A(Base):
pass
class B(Base):
pass
mp: Dict[str, Type[Base]] = {
"A": A,
"B": B
}