假设已经创建了一个抽象基类
我希望在一个函数中使用类型注释,该函数接受任何从
MembershipClass
。有多个类从该抽象基类派生,例如 FirstClass
、SecondClass
等等。我希望在一个函数中使用类型注释,该函数接受任何从
MembershipClass
派生的类作为参数。如果派生类数量很少(比如说 2 个),那么应该可以这样实现:from typing import Union
def MyFunc(membership_obj: Union[FirstClass, SecondClass]) -> None:
...
有没有一种方法可以创建一个类型提示,用于 membership_obj
,它实际上表示其类型是从 MembershipClass
派生的任何类,而无需在类型注释中指定每个可能的派生类?
我看到了两种可能的解决方案:
from typing import TypeVar
BaseType = TypeVar('BaseType', bound=MembershipClass)
def MyFunc(membership_obj: BaseType) -> None:
...
def MyFunc(membership_obj: MembershipClass) -> None:
...
这两种方法都可以接受吗?