From PMOTW, namedtuple instances are just as memory efficient as regular tuples because they do not have per-instance dictionaries. Each kind of namedtuple is represented by its own class, created by using the namedtuple() factory function. The arguments are the name of the new class and a string containing the names of the elements.
In the below code we make use of namedtuple and make class object behave like a list or tuple using __getitem__ and update the value of arguments using __setitem__ .
my discussion with Martijin Pieters on SO: http://stackoverflow.com/questions/30075560/how-to-set-value-of-class-object-argument-as-if-its-a-dict-using-setitem
regarding setting and updating the value of argument.