"R (Chandra) Chandrasekhar" <chyav...@gmail.com> writes: > Dear Folks, > > I am currently developing a python program, let us call it > "generic.py", and I am testing out the functions therein by testing > them out interactively in the python interpreter by invoking python > and doing > > import generic > > Once I hit an error, I need to revise my file and reload the module using > > reload(generic) > > The difference in syntax between invoking import and reload is really > costing me time and patience. > > Therefore, I would like to ask: > > 1. Is there a method of auto-reloading a module while developing it > and testing it with the interactive python interpreter? > > 2. Is there a better way of developing a program? > > Thank you. > > Chandra
Here is a very simple way to improve what you do, which won't require you to change the way you work or to learn a new paradigm: Instead of testing your functions interactively, put your testing code in a file, e.g. 'program_tests.py'. Your can then type python program_tests.py at the shell interactive prompt. To perform the tests again, just re-execute that file. If your tests are divided into different units, you can put these in functions: def test_frobz(): #testing code for frobzation of klops def test_frizz(): #testing code for frizzment of frobzied klops # etc.. So if you want to keep doing interactive tests, you can import program_tests and call whichever testing functions you want. You may even have arguments to those functions to test them with different parameters. I know some people will point at more 'pro' ways of testing but this has the merit of being very straightforward. Then when you move on to more sophisticated techniques, I think you will understand better the motivations behind them. -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list