The __init__() function gets called when object is created. Is it ok to call an object __init__() function again, after its been created?
__init__()
As far as I know, it does not cause any problems (edit: as suggested by the kosher usage of super(...).__init__(...)), but I think having a reset() method and calling it both in __init__() and when you need to reset would be cleaner.
super(...).__init__(...)
reset()