While reloading python modules it's not hard and assure you that new objects will use the new code, the problem comes around existing objects.
Is it possible to upgrade existing objects so they will use the new code? We can assume that we know what classes were changed.
Still, it is possible that some additional functionality was added to __init__(), so just copying their dictionaries it not enough. One possible solution I considered was to assure that these objects can be upgraded by doing something like obj = MyClass(obj), meaning that __init__ should be written in such way that it would not break if called several times.