I have a list of objects in python that I would regularly check and destroy some of them - those which haven't been accessed lately (i.e. no method was called). 
I can maintain the last time accessed and update it in every method, but is there any more elegant way to achieve this?
What is the scope of your objects?  Can you lock down where they are stored and accessed?  If so, you should consider creating some kind of special container that will timestamp when the object was last used or accessed.  Access to the objects would be tightly controlled by a function which could time-stamp last access time.
What's the most elegant way of keeping track of the last time a python object is accessed?