I'm trying to create a class for a vector, and as such the number of inputs would depend on the dimension of the vector. Here's my code right now:
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)
As you can see right now I'm just taking a list as an input so I don't have to deal with that, but I want to do matrices next, and that would require a list of lists, which is a pretty tedious way to input information. Anyone know a way to create a class with a flexible number of arguments?
Thanks
