我有一個Python類Vector類 - 模擬數字型
class Vector2D(object):
def __init__(self, x, y):
self.x = float(x)
self.y = float(y)
def mag(self):
return sqrt(self.x**2 + self.y**2)
...
我希望能夠繁殖的載體在一起,就像vector1 * vector2
,所以我加了
def __mul__(self, v):
return Vector2D(self.x * v.x, self.y * v.y)
但我也想用new_vector = some_vector * 2
並返回像這樣的新矢量
def __mul__(self, factor):
return Vector2D(self.x * factor, self.y * factor)
我該怎麼做?
使用'type'還是'isinstance'更好? – colinmarc 2010-06-24 01:01:31
@colinmarc:'type()'檢查特定的類型。 'isinstance()'會捕獲子類。 – 2010-06-24 01:09:50
此外,將類型與'float'或'int'比較將會錯過實現類似數字行爲的其他類型。 – 2010-06-24 01:11:45