用Python创建向量

时间:2013-12-02 21:53:46

标签: python class

我正在创建一个矢量类,其中一个参数是矢量的长度。如果用户未输入长度,则长度自动为0。但是,如果为矢量指定了长度,则每个数字都将设置为0.例如:v(5)[0,0,0,0,0]v()[]。 这是我到目前为止的代码,但它并不是很有效。有什么建议吗?

class V:

    def __init__(self, length = 0):
        self.vector = [0]*length
    def __str__(self):
        print(self.vector)
    def __len__(self):
        return len(self.vector)

然后我插入a = V() b = V(5),当我print(a)print(b)时,我得到一个TypeError。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

我可能会作弊并去分类list

class V(list):
    def __init__(self, length=0):
        super(V, self).__init__([0] * length)

通过这种方式,您可以免费获得长度,代表和其他礼物。

答案 1 :(得分:1)

class V:
    def __init__(self, length = 0):
        self.data = [0]*length

    def __str__(self):
        return '[{}]'.format(', '.join(str(d) for d in self.data))

    def __len__(self):
        return len(self.data)