【发布时间】:2020-06-09 13:13:51
【问题描述】:
我正在寻找一种方法来注释工厂函数的返回类型。
它返回“AlgorithmBase”的随机子节点。
class AlgorithmFactory:
_algorithm_types = AlgorithmBase.__subclasses__()
def select_random_algorithm(self) -> AlgorithmBase:
# Select random algorithm
algorithm_class = self._random_generator.choice(AlgorithmFactory._algorithm_types)
algorithm = algorithm_class()
return algorithm
我从 mypy 收到错误:
我得到的错误是:
Cannot instantiate abstract class 'AlgorithmBase' with abstract attributes 'get_constraints' and 'satisfy_constraints'
这段代码中没有办法实例化'AlgorithmBase'类,如何让mypy理解?
我想避免在返回类型中指定带有“Union”的实际子类。有什么建议吗?
【问题讨论】:
标签: python python-3.x mypy