类似于:
vector3.Length
实际上是一个函数调用,它计算向量的长度,而不是变量。
答案 0 :(得分:14)
使用新式课程,您可以使用property()
:http://www.python.org/download/releases/2.2.3/descrintro/#property。
答案 1 :(得分:6)
答案 2 :(得分:5)
如果您的变量 vector3 是一个点与原点的三维定向距离,并且您需要它的长度,请使用以下内容:
import math
vector3 = [5, 6, -7]
print math.sqrt(vector3[0]**2 + vector3[1]**2 + vector3[2]**2)
如果您需要适用于任意维度的解决方案,请执行以下操作:
import math
vector3 = [5, 6, -7]
print math.sqrt(sum(c ** 2 for c in vector3))
您可以使用Length
属性定义自己的矢量类,如下所示:
import math
class Vector3(object):
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
@property
def Length(self):
return math.sqrt(self.x ** 2 + self.y ** 2 + self.z ** 2)
vector3 = Vector3(5, 6, -7)
print vector3.Length
答案 3 :(得分:3)
在property()装饰器进来之前,这个习惯用法是对计算属性使用无参数方法。这个成语仍然经常被优先用于装饰器,尽管这可能是为了在新式类之前开始的库中的一致性。
答案 4 :(得分:0)