栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Python】类与模块(定义一个三维向量类,实现对象之间的运算)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Python】类与模块(定义一个三维向量类,实现对象之间的运算)

定义一个三维向量类,并定义相应的特殊方法实现两个该类对象之间的加、减运算(要求支持运算符+、-),实现该类对象与标量的乘、除运算(要求支持运算符*、/),以及向量长度的计算(要求使用属性实现)。

class Vector3:
    # 构造方法,初始化,定义向量坐标
    def __init__(self,x,y,z):
        self.a = x
        self.b = y
        self.c = z
          # 与一个向量相加,对应分量相加,返回新向量
    def __add__(self, m):
        x = self.a + m.a
        y = self.b + m.b
        z = self.c + m.c
        return Vector3(x,y,z)

    # 减去另一个向量,对应分量相减,返回新向量
    def __sub__(self, m):
        x = self.a - m.a
        y = self.b - m.b
        z = self.c - m.c
        return Vector3(x, y, z)

    # 向量与一个数字相乘,各分量乘以同一个数字,返回新向量
    def __mul__(self, n):
        x, y, z = self.a*n, self.b*n, self.c*n
        return Vector3(x,y,z)

    # 向量除以一个数字,各分量除以同一个数字,返回新向量
    def __truediv__(self, n):
        x, y, z = self.a/n, self.b/n, self.c/n
        return Vector3(x, y, z)

    # 查看向量长度,所有分量平方和的平方根
    @property
    def length(self):
        return (self.a**2 + self.b**2 + self.c**2)
    def __str__(self):
        return 'Vector3({},{},{})'.format(self.a,self.b,self.c)

v1 = Vector3(4, 5, 6)
v2 = Vector3(7, 8, 9)
print('v1+v2=',v1+v2)
print('v1-v2=',v1-v2)
print('v1*v2=',v1*3)
print('v1/v2=',v2/2)
print('所有分量平方和的平方根为',v1.length)

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/951436.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号