假设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:
...
这两种方法都可以接受吗?