"Eric Dorsey" <dors...@gmail.com> wrote
Working in IDLE on Windows Vista, I have one program that I set to
have 2
character spacing (due to the levels of if's and while's going on --
later
my brother called this a bit of a code smell, ie. logic shouldn't go
that
deep, it should be broken out into separate functions instead.
Thoughts on
that are welcome to, do any of you feel logic should only go so many
layers
deep?),
Deeply nested logic tends to be hard to debug and hard to terst
thoroughly
so yes, this is considered a bad smell. Refactoring the inner parts of
a loop
into a function is often a good way to deal with this but it may have
a
performamnce impact if its a critical bit of code so its not a cure
all.
Usually its possioble to reduce nesting by using a different logic
flow
(De Morgans rules often help here) or by using higher level structures
like list comprehensions instead of loops. In fact functional
programming
techniques in general can help minimise nesting of code - this is one
of
the claimed advantages of functional languages, that they lead to less
deeply nested programs...
I copied some code from the 2 spacing program to another I'm writing
currently which has the default 4, and it got things kind of screwy
with
spacing.
This can happen if you don't have the code in functions. Its easy to
copy a function but copying arbitrary lines out of a function is much
more risky.
but I was wondering, if this happened on a much bigger scale, or you
were
say, pasting code in from some example where they used a different
spacing
than you, is there a simple/good/smart way to get it all back to the
4
spacing default?
There are many tools around that can do this kind of thing - indent,
tab nanny, untabify, format etc... Pick your own favourite.
--
Alan Gauld
Author of the Learn to Program web site
http://www.freenetpages.co.uk/hp/alan.gauld
_______________________________________________
Tutor maillist - Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor