Python,object获取新值的值

时间:2013-03-27 17:45:53

标签: python oop

我有以下代码:

import math

class h:
    vektor = [0,0]
    rel_chyba = 0

    def __init__(self, hodnota, chyba):
        self.vektor[0] = hodnota
        self.vektor[1] = chyba
        self.rel_chyba = chyba*1.0/hodnota

    def __rmul__(self, hod2):
        return h(hod2.vektor[0]*self.vektor[0],  math.sqrt(self.rel_chyba*self.rel_chyba+hod2.rel_chyba*hod2.rel_chyba))

v = h(12,1)
print v.vektor[1]
t = h(25,2)
print v.vektor[1]

我的问题是,v.vektor [1]第一次打印1,第二次打印2。对象v的所有属性都分配了来自t的属性值。

如何创建两个不同的对象? 谢谢你的回答

1 个答案:

答案 0 :(得分:3)

不要在类级别声明vektor,这使它成为类变量。只需在__init__内声明:

def __init__(self, hodnota, chyba):
    self.vektor = [hodnota, chyba]