对于可以返回多种不同类型对象的方法,我应该如何注释返回类型?在
具体来说,这是我遇到问题的方法:def _bin_factory(self) -> Any:
"""
Returns a bin with the specificed algorithm,
heuristic, and dimensions
"""
if self.algorithm == 'guillotine':
return guillotine.Guillotine(self.bin_width, self.bin_height, self.rotation,
self.rectangle_merge, self.split_heuristic)
elif self.algorithm == 'shelf':
return shelf.Sheet(self.bin_width, self.bin_height, self.rotation, self.wastemap)
elif self.algorithm == 'maximal_rectangle':
return maximal_rectangles.MaximalRectangle(self.bin_width, self.bin_height, self.rotation)
raise ValueError('Error: No such Algorithm')
我尝试了Union[shelf.Sheet, guillotine.Guillotine, maximal_rectangles.MaximalRectangle],但是MyPy给了我大量的错误,我后来在我的代码中使用了这个工厂方法。错误似乎集中在这样一个事实上:联合中的所有三个对象类型都具有彼此不同的属性。在