On Mon, 10 Mar 2008 07:39:25 -0700, Gary Herron wrote: > If either is a surprise, then understand that the "is" operator should > probably *never* be used with immutable types.
Carl Banks has already mentioned testing for None with "is". The standard idiom for using mutable default arguments goes something like this: def foo(arg=None): if arg is None: arg = [] do_something_with(arg) Another standard idiom that requires "is": sentinel = object() # a special value that isn't None ... if something is sentinel: blah blah blah Mutable or immutable, it makes no difference: "is" is for testing identity, == is for testing equality. If you need to test for identity, use "is". If you need to test for equality, use ==. -- Steven -- http://mail.python.org/mailman/listinfo/python-list