[英]Python - TypeError: unsupported operand type(s) for +: 'type' and 'int'
[英]Python TypeError: unsupported operand type(s) for *: 'Vector2' and 'int'
我正在尝试创建一个Vector2类。 当我尝试输入
vec1 = Vector2()
vec2 = vec1 * 5
它给了我错误:
TypeError: unsupported operand type(s) for *: 'Vector2' and 'int'
我的运算符重载有问题吗?
class Vector2(object):
def __init__(self, x = 0.0, y = 0.0):
self.X = x
self.Y = y
def __add__(self, other):
if isinstance(other, Vector2):
new_vec = Vector2()
new_vec.X = self.X + other.X
new_vec.Y = self.X + other.Y
return new_vec
else:
raise TypeError("value must be a vector.")
def __radd__(self, other):
return self.__add__(other)
def __sub__(self, other):
new_vec = Vector2()
new_vec.X = self.X - other.X
new_vec.Y = self.Y - other.Y
def __mull__(self, value):
new_vec = Vector2()
new_vec.X = self.X * value
new_vec.Y = self.Y * value
return new_vec
def __rmull__(self, value):
return self.__mull__(value)
def __div__(self, value):
new_vec = Vector2()
new_vec.X = self.X / value
new_vec.Y = self.Y / value
return new_vec
def dot(vector1, vector2):
return ((vector1.X * vector2.X) + (vector1.Y + vector2.Y))
不是__mul__
而不是__mull__
吗? 更换你__mull__
与__mul__
,然后再试一次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.