我正在尝试编写一个Python类Segment
,它由两个Vectors
组成,表示与这些点相关的点和函数。
段可以相交,所以我试图编写一个方法s1.intersect(s2)
,它返回有关Segs s1和s2如何相交的信息。根据段,表示交叉点需要不同数量的点:
Vector
)Segment
)换句话说,对于不同的情况,似乎需要2-3种数据类型。这很不方便,因为该功能的用户必须手动区分它们。
以下是我可以想到的一些返回这些数据类型的方法:
Vector
列表。这样可以获取信息并完成工作,但返回的值并不反映他们实际引用的数据类型 - 即Vector
,Segment
和一些通知失败。
Vector
,Segment
或False
在这种情况下,用户必须使用isinstance
来区分这些或冒无效类型问题。这也很难看。
Intersection
,用于存储Vector
,Segment
或False
。这样做的好处是每次都返回相同的数据类型,但用户仍然必须使用isinstance
来区分类型。
在Python中处理多种返回类型的最佳方法是什么?
答案 0 :(得分:0)
继续并返回None
,Vector
或Segment
。这是三种可能性,即使你把它包起来,用户也会在某些时候处理这些差异。
所以请保持简单,让您的用户使用isinstance()
(完全是Pythonic)。