On Tuesday, March 20, 2018 at 1:10:19 PM UTC-4, Irv Kalb wrote: > I am aware of all the issues involved. My example code was an attempt to > demonstrate the clearest, simplest case possible. My question is not about > this small case. In classes designed for full games, I often have a "reset" > method that resets many instance variables (and potentially other display > fields and graphics) for a new round of playing a game. Grouping this into a > method called something like "reset" makes logical sense to me. You tell the > game object to reset itself, and it does whatever it needs to do to reset for > a new round. My __init__ method calls reset to initialize the first round of > the game. This ensures that every play of the game goes through the same > initialization.
Calling reset() from __init__() and duplicating resetting logic during initialization aren't the only choices. My personal preference in such situations is to put all initialization code in __init__. Then write a separate factory function / method to create the new object for the next round. Optionally, this factory can be parametrized by the previous round object. Regards, Igor. -- https://mail.python.org/mailman/listinfo/python-list