Steven D'Aprano wrote: [ snip excellent discussion of proper use of assert]
The third bug (the nitpick) is a bug in the API: you name the argument "nxt" with no e, but in the error message, you call it "next" with an e. The fact that any intelligent person should be able to guess what parameter the error is referring to doesn't make it less wrong. So, fixing the three issues: def setNext(next): if not (next is None or isinstance(next, Node)): raise ValueError("next must be a Node") self.next = next
[counternit] Of course, next() is a builtin function and some consider reusing builtin names as bare names (versus attribute names) a bad habit. I think the OP had a good idea in using a variation, but should have been consistent.
-- http://mail.python.org/mailman/listinfo/python-list