2

次のコードがあります。

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 回目に 2 を出力することです。オブジェクト v のすべての属性には、t の属性の値が割り当てられます。

2 つの異なるオブジェクトを作成するにはどうすればよいですか? 回答ありがとうございます

4

1 に答える 1

3

vektorクラスレベルで宣言しないでください。これにより、クラス変数になります。内部で宣言するだけ__init__です:

def __init__(self, hodnota, chyba):
    self.vektor = [hodnota, chyba]
于 2013-03-27T17:48:05.213 に答える