class Vec(list): def __init__(self): list.__init__(self, [0.0, 0.0])
def __iadd__(self, other): assert isinstance(other, Vec) self[0] += other[0] self[1] += other[1] print "right now, v is: ", self, " as you'd expect" v = Vec() w = Vec() w[0] = 1.0 w[1] = 2.0 print "v starts:", v print "(w is:", w, " which is fine)" v += w print "(w still is:", w print "after iadd, v: ", v, " <-- becomes None! What the hey?" # - running it: py> python badvec.py v starts: [0.0, 0.0] (w is: [1.0, 2.0] which is fine) right now, v is: [1.0, 2.0] (w still is: [1.0, 2.0] later, v is: None <-- becomes None! What the hey? py> python -V Python 2.5.1 -- Any explanation from a guru? Thanks much... -- http://mail.python.org/mailman/listinfo/python-list