【发布时间】:2017-07-04 18:58:15
【问题描述】:
typing 下是否有任何行为类似于 mixin 的类?
例如
from typing import Union
class A:
pass
class B:
pass
class C:
pass
class D(A, B, C):
pass
# current: ab is A or B, but not both
def f(ab: Union[A, B]):
pass
# ideal: ab is A and B
def f(ab: Mixin[A, B]):
pass
f(D())
请注意D 是A 和B 的实例,也是C 的实例。这对f 的限制太大(因为f 不需要C),因此参数ab 不一定是D 类型,而是Mixin[A, B]
如果typing 模块没有提供任何选项,还有什么比创建我自己的class AB(A, B) 更优雅的吗?
【问题讨论】:
标签: python multiple-inheritance typechecking