On 9/21/2013 5:43 PM, Peter Cacioppi wrote:
This is an idea brought over from another post.

When I write Python code I generally have 2 or 3 windows open simultaneously.

1) An editor for the actual code.
2) The interactive interpreter.
3) An editor for the unit tests. (Sometimes skipped for quick one-off scripts)

At present, I use an Idle Shell and two editor windows.

My work flow tends to involve using 2 to debug the issues that come up with 1 
and 3. I'll write some new code in 1, play around with it in 2, then solidify 
the tests in 3. Or a test in 3 fails and I dig around with it using 2.

F5 in an editor window runs the code, puts the results in Shell, and leaves the objects loaded for interactive exploration in Shell.

My problem is that I tend to use reload() quite a bit. I want to call functions 
and construct objects that are inside the guts of 1 and pass them arguments 
that are stored as variables in 2. If I restart my session for 2 I lose these 
variables (iPython does mitigate the pain here somewhat). Hence, I reload() 
modules into 2 when they are changed.

Since I work with files small enough to reload by rerunning, I have no use for reload().

I use ipdb a lot in 2. I usually don't feel comfortable with virgin code or a 
debug fix that hasn't been stepped through with the debugger.

I trust tests, formal and informal, and use occasional print to debug.

Is there something wrong with this work flow? I understand most python experts 
avoid reload(). So what are they doing that I'm not? I love the ability of 
Python to quickly let you dive deep into your code and set up a difficult case 
with 2, it's hard to imagine giving this up, and it's hard to imagine using it 
without reload().

Since 'experts do not use Idle', I must not be one ;-). I will let the real 'experts' explain what they do.

--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to