有没有办法创建一个输入数量未知的类?

2024-05-23 17:10:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图为一个向量创建一个类,因此输入的数量取决于向量的维数。下面是我的代码:

class vector:
    def __init__(self, entries):
        self.elements = []
        self.dimensionality = len(entries)
        for entry in entries:
            self.elements.append(entry)
    def __str__(self):
        buff = "("
        for e in self.elements:
            buff += str(e)
            if self.elements.index(e) < len(self.elements) - 1:
                buff += ", "
        buff += ")"
        return buff
    def __mul__(self, otherVector):
        if self.dimensionality != otherVector.dimensionality:
            raise RuntimeError("Cannot multiply vectors of different dimensions")
        else:
            product = 0
            for e in self.elements:
                product += e * otherVector.elements[self.elements.index(e)]
            return product
    def __eq__(self, otherVariable):
        return size(self) == size(otherVariable)

def size(x):
    norm = 0
    for e in x.elements:
        norm += e**2
    return norm**(1/2)

正如你现在看到的,我只是把一个列表作为一个输入,所以我不需要处理这个问题,但是我想下一步做矩阵,这需要一个列表列表,这是一个非常乏味的输入信息的方法。有人知道如何创建一个参数数目灵活的类吗

谢谢


Tags: inselfnorm列表forsizereturndef