python 类的练习及内置函数重载

有关python类的练习题
在这里插入图片描述
定义一个n维向量类:
(1)创建一个初始化向量的成员函数
(2)重载格式化输出函数
(3)将矢量的模装饰成属性函数
(4)重载矢量加法运算
(5)重载矢量减法运算
(6)求两矢量的点积
(7)给出测试主程序

具体代码如下

class Vector:
    # 创建成员函数
    def __init__(self, v):
        self.v = v

    # 重载格式化输出函数
    def __format__(self, format_spec):
        return "vector={x}".format(x=self.v)

    # 将矢量的模装饰成属性函数
    @property
    def normcal(self):
        temp = 0
        for i in self.v:
            temp += i * i
        print("%s" % temp**0.5)

    # 重载矢量加法运算
    def __add__(self, other):
        if len(self.v) != len(other.v):
            return "cant calculate"
        result = []
        for i in range(len(self.v)):
            result.append(self.v[i]+other.v[i])
        return result

    # 重载矢量减法运算
    def __sub__(self, other):
        if len(self.v) != len(other.v):
            return "cant calculate"
        result = []
        for i in range(len(self.v)):
            result.append(self.v[i]-other.v[i])
        return result

    # 求两矢量点积
    def dot_product(self, other):
        if len(self.v) != len(other.v):
            return "cant calculate"
        result = []
        for i in range(len(self.v)):
            result.append(self.v[i]*other.v[i])
        return result


"""
以下是测试主程序
"""
# 初始化两个n维向量
class1 = Vector([1, 3])
class2 = Vector([2, 4])

# 格式化输出函数调用
print("{}".format(class1))

# 属性函数调用
class1.normcal

# 两向量加法
print(class1+class2)

# 两向量减法
print(class1-class2)

# 两向量点积
print(class1.dot_product(class2))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值