I'm using Python 2.7 and the code below fails at the 'super' statement
in the __setitem__ function in the HistoryKeeper class.  The error is:
   'super' object has no attribute '_setitem__'

Can anyone please tell me why and how to fix it?   (I've googled
endlessly and I don't see the problem.)

[The code will seem silly as it is, because it's pared down to show
the example.  The goal is that multiple classes, like the Vehicle
class below, will inherit HistoryKeeper.  History keeper overloads
__setitem__ and will eventually keep a running history every time an
attribute of any of the inheriting classes is changed.]

Thanks in advance ....


class HistoryKeeper(object):
    def __init__(self, args):
        for arg, value in args.items():
            if arg != 'self':
                self.__setitem__(arg, value)

    def __setitem__(self, item, value):
        super(HistoryKeeper, self).__setitem__(item, value)


class Vehicle(HistoryKeeper):
    def __init__(self, tag, make, model):
        args = locals()
        super(Vehicle, self).__init__(args)


if __name__ == "__main__":
    car = Vehicle('TAG123', 'FORD', 'Model A')
    print car.make
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to