#自定义类模拟三维向量及其运算
'''
定义一个三维向量类,并定义相应的特殊方法实现两个该类对象之间
的加、减运算(要求支持运算符+、-)实现该类对象与标量的乘
除运算(要求支持运算符*/),以及向量长度的计算(要求使用属性实现)
'''
class Vector3:
#构造方法,初始化,定义向量坐标
def __init__(self,x,y,z):#定义了私有变量
self.__x=x
self.__y=y
self.__z=z
def add(self,another):#加法运算,another是另一个对象
x=self.__x+another.__x
y=self.__y+another.__y
z=self.__z+another.__z
print("经过加法运算后=({},{},{})".format(x,y,z))
def sub(self,another):#减法运算
x=self.__x-another.__x
y=self.__y-another.__y
z=self.__z-another.__z
print("经过减法运算后=({},{},{})".format(x, y, z))
def mul(self,n):#乘法运算
x=self.__x*n
y=self.__y*n
z=self.__z*n
print("经过乘法运算后=({},{},{})".format(x, y, z))
def truediv(self,n):#除法运算
x=self.__x/n
y=self.__y/n
z=self.__z/n
print("经过除法运算后=({},{},{})".format(x, y, z))
def length(self):#计算长度
a=pow(pow(self.__x,2)+pow(self.__y,2)+pow(self.__z,2),0.5)
print("长度为:{}".format(round(a,3)))#输出结果保留三位小数
n1=Vector3(1,2,3)
n2=Vector3(2,3,4)
n1.add(n2)
n1.sub(n2)
n1.mul(2)
n1.truediv(2)
n1.length()
输出结果
经过加法运算后=(3,5,7)
经过减法运算后=(-1,-1,-1)
经过乘法运算后=(2,4,6)
经过除法运算后=(0.5,1.0,1.5)
长度为:3.742