gpt4 book ai didi

Python 类型错误 : unsupported operand type(s) for *: 'Vector2' and 'int'

转载 作者:行者123 更新时间:2023-11-28 23:06:41 29 4
gpt4 key购买 nike

我正在尝试创建一个 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__ 并重试。

关于Python 类型错误 : unsupported operand type(s) for *: 'Vector2' and 'int' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4654688/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com