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