kj wrote:
I'm will be teaching a programming class to novices, and I've run
into a clear conflict between two of the principles I'd like to
teach: code clarity vs. code reuse.  I'd love your opinion about
it.
[...]
    sense = cmp(func(hi), func(lo))
    if sense == 0:
        return None
My suggestion on how to improve this part for python novices:
# assuming func is monotonous
if func(high) > func(low):
   direction = 1 # aka sign of the func derivative
elif func(low) > func(high):
   direction = -1
else:
   return None

Avoid using cmp, this will prevent the "what the hell is cmp doing ?" , unless you want to teach your students how to search for inline python documentation. Some other list members have suggested to improve the variable naming. I couldn't agree more, in your case, I think clarity can be achieved as well with the abstraction (these notions does not necessarily collide).

Here's a link on my how-to-name bible :
http://tottinge.blogsome.com/meaningfulnames/

Jean-Michel

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

Reply via email to