【发布时间】:2015-09-10 12:54:05
【问题描述】:
我正在努力让它发挥作用,因为我能找到的所有答案都更侧重于 numpy 数组中的向量,而不是像我在类 (OOP) 中的那样。 (我希望我的措辞是正确的,如果我不是,请原谅)。
我想求一个向量 (x,y) 的大小,这是我的代码:
class Vector(object):
def __init__(self, x, y):
self.x = x
self.y = y
我有代码可以将两个向量相加和相减,但是如何用这个等式得到大小:
magnitude = math.sqrt(sum(v**2 for v in vector))
这是我的代码,但它没有给我我需要的东西:
def vector_mag(self):
x_vector = self.x
y_vector = self.y
vector = (x_vector, y_vector)
magnitude = math.sqrt(sum(v**2 for v in vector))
return Vector(magnitude)
这给出了一个错误提示:
第 22 行,在
中打印vector.vector_mag()
第 14 行,在 vector_mag 中
返回向量(大小)
TypeError: init() 只需要 3 个参数(给定 2 个)
所以当我像这样在返回部分添加另一个“字符串”时......:
return Vector("向量幅度为:",幅度)
...程序运行但给出了一个奇怪的结果。
我做错了什么?
这是我的“完整”代码:
导入数学
类向量(对象):
def __init__(self, x, y): self.x = x self.y = y def vector_mag(self): x_vector = self.x y_vector = self.y vector = (x_vector, y_vector) magnitude = math.sqrt(sum(v**2 for v in vector)) return Vector("Vector magnitude is: ", magnitude)vector1 = Vector(10, 1)
vector2 = Vector(20, 2)
vector_list = [(vector1), (vector2)]
对于vector_list中的向量:
print vector.vector_mag()
【问题讨论】:
-
为什么要从
vector_mag调用返回另一个向量?不应该是一个数字吗? -
你是对的 tukasz,我只是在那儿很愚蠢,谢谢 :)
标签: python python-2.7 oop vector